2020. 1. 31. 21:29ㆍC# 언어/이것이 C# 이다. 연습문제

1. 다음 코드 중에서 올바로 동작하지 않는 것을 고르세요.
- Type t = myObject.GetType();
- Type t = typeof("int");
- Type t = Type.GetTpye(int);
- Type t = Type.GetType("System.Int32");

조금 설명해보자면
1. 의 경우 선언된 변수나 클래스가 있는 조건이라면 문제없이 타입을 가져올 수 있다.
2. 의 경우 typeof() 연사자이다. typeof 연산자의 경우 형식의 식별자 자체를 매개 변수로 받고
Type.GetType() 메소드는 형식의 전체 이름, 즉 네임스페이스를 포함한 형식이름을 매개 변수로 받는다.
두 가지 경우모두 형식 정보를 얻을 수 있는 기능은 같으나 매개 변수의 차이가 있다.
3. 위에 설명한거와 같이 GetType은 네임스페이스를 포함한 매개 변수여야한다.
4. 문제없이 동작한다.

2. 애트리뷰트와 주석의 차이는 무엇입니까?
책의 설명으로 말하자면
애트리뷰트는 코드에 대한 부가 정보를 기록하고 읽을 수 있는 기능입니다. 주석과 다른 점은 주석은 사람이 읽고 쓰는 정보라면, 애트리뷰트는 사람이 작성하고 컴퓨터가 읽는다는 것 입니다.
애트리뷰트를 이용해서 클래스나 구조체, 메소드, 프로퍼티 등에 데이터를 기록해두면 이 정보를 C# 컴파일러나 C#으로 작성된 프로그램이 이 정보를 읽어 사용할 수 있습니다.
내가 공부한 느낌으로 적자면
애트리뷰트를 사용하면 커스텀한 주석을 사용할 수 있다는 느낌이였다. 그리고 그 커스텀 주석을 컴퓨터, 사용자가 읽어서 사용할 수 있고 코드에 이용할 수 있다.