Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C#

Typeof() vs GetType() trong C#

Typeof()

typeof lấy kiểu tại compile-time, trả về Type của đối số.

Ví dụ: typeof(byte) trả về System.Byte.

Ví dụ

using System;

class Program {
    static void Main() {
        Console.WriteLine(typeof(int));
        Console.WriteLine(typeof(byte));
    }
}

Kết quả

System.Int32
System.Byte

GetType()

GetType() lấy kiểu của instance hiện tại tại runtime.

Type tp = value.GetType();

Ví dụ kiểm tra kiểu int:

if (tp.Equals(typeof(int)))
    Console.WriteLine("{0} là kiểu integer.", value);

Ví dụ

using System;

class Program {
    public static void Main() {
        object[] values = { (int)100, (long)17111 };
        foreach (var value in values) {
            Type tp = value.GetType();
            if (tp.Equals(typeof(int)))
                Console.WriteLine("{0} là kiểu integer.", value);
            else
                Console.WriteLine("'{0}' không phải kiểu int.", value);
        }
    }
}

Kết quả

100 là kiểu integer.
'17111' không phải kiểu int.