new 한정자 부모 클래스를 상속한 자식 클래스에서, 부모 클래스에 존재하는 변수명/함수명과 같은 변수/함수를 선언하고 외부가 아닌 자식 인스턴스 내부에서 그 변수/함수를 호출할 때, 부모 쪽이 아닌 자식 쪽의 멤버에 접근하도록 해주는 한정자. new 한정자를 붙여주지 않아도 자식의 멤버부터 확인을 하므로 문제는 없지만, 컴파일러 경고가 발생한다. override 키워드와 함께 사용할 수 없다. class Parent { public int num = 100; public virtual void Func() { Console.WriteLine("부모 Func 호출 - num : {0}", num); } } class Child : Parent { new public int num = 10; new pub..
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 값으로 반환..