C# Basic Tutorial (Variable, by value, by reference, immutable)

Variable

 type variableName = value;


type = (int, bool, string, object .. 등 type 명)

variableName = 변수의 이름

value = 변수에 저장 되는 값

; <-- 문장의 끝은 semicolon 으로 끝난다. (c++, java ... 등과 같다.)


Program.cs 로 이동하자

Console.WriteLine("Hello, World!"); <--- 삭제

다음을 typing 하자. (그림으로 준비 했다. 직접 쳐보자)







주석에 설명을 다 해놓았다. 참조 하자.

int 는 inteager 형 숫자형 type 이다. 

bool 은 boolean 형태의 true, false 값을 받는 type 이다.

string 은 문자열 행태의 값을 받는 " " 따옴표로 감싸여진 type 이다. 

Console.WriteLine 은 console 에 값을 찍는 문장이며 

$ 표시자는 문자열에 format 에 변수를 직접 대입 할 수 있도록 한다.  


이해하기 어려운 내용은 없으며 확인해 볼 것은 obj 에 age 를 담고 있는 곳에서

변수를 대입한다. (복사됨)

이라고 되어 있는 주석을 확인 할 수 있다. 

마우스를 int 위쪽으로 가져가면


위와 같이 readonly struct 어쩌구 저쩌구를 볼수 있다. 

이 이야기는 struct 형태로 정의 되어 있다는 말이다. 


C# 에는 by value 형태와 by reference 형태의 변수 형태가 있다. 

by value 형태는 변수를 다른 변수에 대입시 값을 그대로 복사 하는 형태가 되어

Target 의 변경이 원본에 영향을 주지 않는다. 

int, bool, long, 그리고 struct 로 만들어진 type 이 by value 형태이다.


by reference 형태는 변수를 다른 변수에 대입시 참조 형태로 복사하게 되어

Target 의 변경이 원본에도 영향을 주게 된다. 

class 형으로 만들어진 변수는 by ref 형태이다.


string 이나 record 는 특수한 형태 이다. 

string 은 reference 이지만 immutable object 라고 하여서

원본이 변경되지 않고 항상 새로 값이 생성되는 특수한 값이다. 

record 는 immutable 특성을 갖고 있는 사용자 정의용 type 이라고 생각하면 된다. 





댓글

이 블로그의 인기 게시물

Mediator

ASPNET 6 Web Api Basic Tutorial 1 / 2 (Swagger, SeriLog, MediatR, EntityFrameworkCore, Scrutor)

Dependency Injection Customization