선생님 안녕하세요!
[질문 1]
교재 150쪽을 보시면 클래스의 이름에서 곧바로 Type을 구하는 방법은 typeof를 사용하면 된다고 말씀하셨는데
typeof(double)에서 double은 클래스가 아니라 구조체인 것으로 알고 있는데 혹시 구조체도 된다는 것을 보여주실려고
double을 입력하신 건가요??
[질문 2]
namespace Example
{
class Program
{
static void Main(string[] args)
{
// CASE 1
string s = "hello";
Type t1 = typeof(string);
Type t2 = s.GetType();
if(t1 == t2)
{
Console.WriteLine(t1.Name); // String
Console.WriteLine(t2.Name); // String
}
// CASE 2
object obj = "hello";
Type t3 = typeof(object);
Type t4 = obj.GetType();
if(t3 != t4)
{
Console.WriteLine(t3.Name); // Object
Console.WriteLine(t4.Name); // String ★★★
}
}
}
}
별표 친 곳에 Object가 아닌 이유는 GetType은 런타임에 타입 정보를 뽑아오고
typeof는 컴파일 타임에 타입 정보를 뽑아오기 때문이라고 생각해도 될까요?
[질문 3] typeof와 GetType의 차이점을 다음과 같이 받아들여도 될까요?
typeof
* 클래스의 이름에서 Type을 구해야 한다.
* 컴파일 타임에 타입 정보를 뽑아온다.
GetType
* 클래스의 인스턴스에서 Type을 구해야 한다.
* 런타임에 타입 정보를 뽑아온다.
[최초 등록일: ]
[최종 수정일: 1/21/2021]