소멸자
가비지 컬렉터가 돌기전에 실행된다.
nameof연산자
임의의 기호(형식, 멤버, 변수 등)의 이름에 해당하는 문자열을 돌려준다.
그냥 해당 문자열을 직접 지정하는 것에 비한 이 연산자의 장점은 정적 형식 점검이 일어난다. 참조 같은 형식으로 해당 기호의 이름을 바꾸면 그에 대한 모든 참조의 이름도 바뀐다. (컴파일 시점에 평가되며 런타임의 영향을 주지 않는다.)
nameof언제사용할까?
1. ToString보다 빠르다.
enum MyEnum { ... FooBar = 7 ... }
Console.WriteLine(MyEnum.FooBar.ToString());
> "FooBar"
ToString()은 런타임에 실행되고 nameof는 컴파일 시 실행되기때문에 상대적으로 ToString()이 느리다.
Console.WriteLine(nameof(MyEnum.FooBar))
> "FooBar"
2. 예외상황이 최신화 상태로 유지된다.
public string DoSomething(string input)
{
if(input == null)
{
throw new ArgumentNullException(nameof(input));
}
...
input매개 변수의 이름이 바뀌어도 속성이나 파라미터의 이름을 얻기 때문에
https://stackoverflow.com/questions/31695900/what-is-the-purpose-of-nameof
'프로그래밍언어 > C#' 카테고리의 다른 글
20200214[C#] 상속된 멤버 숨기기 (0) | 2020.02.14 |
---|---|
20200213[C#] 캐스팅과 참조 변환 (상향 캐스팅, 하향 캐스팅), as 연산자 (0) | 2020.02.13 |
20200211[C#]객체 초기치 대 선택적 매개변수, 식 본문 속성=>, 정적생성자 (0) | 2020.02.11 |
20200210[C#]중접된 using 지시자,형식 이름공간의 별칭,global,식 본문 메서드 (0) | 2020.02.10 |
C#) CLR(Common Language Runtime)이란? (0) | 2020.02.04 |