Bỏ qua chủ đề quyền anh, tất cả các lớp được kế thừa từ đối tượng loại. Điều này đúng cho cả loại tham chiếu và loại giá trị. GetType hiển thị loại có nguồn gốc nhiều nhất, trong trường hợp này là System.Int32.
Một trong số ít những lần GetType sẽ trở System.Object là nếu bạn làm điều này:
object var = new Object();
Console.WriteLine(var.GetType().ToString());
Boxing đề cập đến khi một loại giá trị được trỏ đến bởi một loại tài liệu tham khảo. Nói chung điều này được thực hiện như một tham chiếu System.Object. TypeOf sẽ trả về kiểu thực tế có nguồn gốc nhiều nhất, không phải kiểu tham chiếu.
class A
{
}
class B : A
{
}
class C : B
{
}
object obj1 = new ClassA();
ClassB obj2 = new ClassB();
ClassB obj3 = new ClassC();
GetType sẽ làm những việc tương tự cho những loại này.
System.Console.WriteLine(obj1.GetType().ToString());
System.Console.WriteLine(obj2.GetType().ToString());
System.Console.WriteLine(obj3.GetType().ToString());
ClassA
ClassB
ClassC
Nguồn
2010-08-10 08:53:54
@Also OP, cả hai Console.WriteLines sẽ hoạt động, ngay cả khi không có ToString() rõ ràng - nó sẽ được ngầm gọi nếu đối số của bạn loại là một đối tượng. – Gishu
đã xóa bỏ lời chào: "Cảm ơn trước"., Cũng đã xóa các từ bất hợp pháp khỏi tiêu đề: "Câu hỏi về", không làm điều đó vào lần sau –