Property accessor(접근자) mutator(설정자)를 대체할 수 있는 특수한 메소드. class Person { private int age; // private (데이터 타입) (변수 명) 형태로 변수 선언 public int Age // public (데이터 타입) (메소드 이름) 형태로 메소드 선언 { get { return age; // Age 메소드를 통해 가져올 private 멤버를 반환 } set { age = value; // Age 메소드를 통해 값을 저장할 private 멤버에 value를 세팅 } } } 자동 구현 프로퍼티 private 속성의 필드를 프로퍼티와 동시에 생성해서, 따로 생성해주고 연결해 주는 불편함을 줄여 주는 프로퍼티. 위의 일반 프로퍼티처럼 변수 선언 ..
as Keyword 타입 캐스팅 시 성공하면 캐스팅 된 값을 반환하고 실패하면 null 값을 반환 as를 사용할 때는 null을 받을 수 있는 타입을 사용해야 한다. class Weapon { } class Player { public void Attack(object weapon) { Weapon myWeapon = weapon as Weapon; } } class Program { static void Main(string[] args) { Player p = new Player(); Weapon sword = new Weapon(); p.Attack(sword); } } is Keyword as Keyword가 캐스팅 된 값을 반환한다면 is Keyword는 캐스팅 가능 여부를 bool 값으로 반환..
nullable 데이터 타입 일반적인 데이터 타입은 어떤 값이든지 꼭 가지고 있어야 하지만 변수 자체가 null 값을 가질 수 있어야 하는 경우가 있는데 이럴 때 사용할 수 있는 데이터 타입이다. 변수 선언 시 데이터 타입 뒤에 ?를 붙여 주기만 하면 null 값을 저장할 수 있게 된다. ex) int? num = null; var Keyword C++ 11의 auto Keyword처럼 C#에도 데이터 타입을 자동으로 지정해주는 var 이라는 키워드가 있다. var num = 10; // 변수 선언 시 데이터 타입이 들어갈 위치에 사용해 주면 된다. 아래 코드처럼 nullable 과는 동시 사용이 불가능하다. var? num = 10; (x) var? num = null; (x)
C#에서의 참조 C#에서는 형식 안전성과 보안을 유지하기 위해 기본적으로 포인터 산술 연산을 지원하지 않습니다. 그러나 unsafe 키워드를 사용하면 포인터를 사용할 수 있는 안전하지 않은 컨텍스트를 정의할 수 있습니다. 포인터에 대한 자세한 내용은 포인터 형식 항목을 참조하십시오 - MSDN C#에서는 포인터를 통해 데이터를 참조하는 것을 권장하지 않는다. 그래서 참조에 의한 호출을 하려면 ref 키워드를 사용해야 한다. public void Func(ref int a, ref int b) { // 함수의 내부에서 값을 복사해서 사용하는 게 아닌 // 참조해서 사용하는 경우 // 함수의 정의, 호출 시에 ref 키워드를 붙여주면 된다. } 출력을 위한 매개 변수 out 참조에 의한 호출을 위해서 ref..