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

Lấy kiểu của instance hiện tại trong C#

Giới thiệu

Phương thức GetType() (kế thừa từ object) trả về đối tượng Type mô tả kiểu runtime của instance. Hữu ích cho reflection, logging, serialization.

Ví dụ 1: Kiểu string

using System;

public class Demo
{
    public static void Main()
    {
        string s = "Demo";
        Console.WriteLine("Chuỗi = " + s);
        Console.WriteLine("Kiểu chuỗi = " + s.GetType());
    }
}

Kết quả

Chuỗi = Demo
Kiểu chuỗi = System.String

Ví dụ 2: Các kiểu giá trị cơ bản

using System;

public class Demo
{
    public static void Main()
    {
        double val1 = 5.5;
        int val2 = 10;
        short val3 = 2;

        Console.WriteLine("Giá trị = " + val1);
        Console.WriteLine("Kiểu = " + val1.GetType());
        Console.WriteLine("Giá trị = " + val2);
        Console.WriteLine("Kiểu = " + val2.GetType());
        Console.WriteLine("Giá trị = " + val3);
        Console.WriteLine("Kiểu = " + val3.GetType());
    }
}

Kết quả

Giá trị = 5.5
Kiểu = System.Double
Giá trị = 10
Kiểu = System.Int32
Giá trị = 2
Kiểu = System.Int16

Ứng dụng

  • Kiểm tra kiểu runtime: obj.GetType() == typeof(MyClass).
  • Reflection: type.GetProperties(), type.GetMethods().
  • Polymorphism: đối tượng base class tham chiếu đến derived class, GetType() trả về kiểu thực tế.
  • Anonymous type: var x = new { Name = "A" }; x.GetType() trả về kiểu compiler-generated.