Chúng tôi có một chương trình rất đơn giản gọi phương thức tĩnh Type.GetType
. Cả hai ví dụ sẽ trả về một thể hiện kiểu hợp lệ. Chỉ có cái thứ hai thực sự là. Có vẻ như có điều gì đó kỳ lạ đang xảy ra với thu thập dữ liệu ngăn xếp được sử dụng bởi GetType
, nhưng vấn đề chính xác ở đây là gì? Có lỗi hay một số tính năng tối nghĩa không?Tại sao GetType() không thể tìm thấy kiểu khi được gọi thông qua một ủy nhiệm nhóm phương thức?
public class TestClass { }
class Program
{
static void Main(string[] args)
{
var fullName = typeof(TestClass).FullName;
Console.WriteLine("Full name: {0}", fullName);
new[] { fullName }.Select(Type.GetType).ToList().ForEach(t => Console.WriteLine("Method group: '{0}'", t));
new[] { fullName }.Select(t => Type.GetType(t)).ToList().ForEach(t => Console.WriteLine("Closure: '{0}'", t));
}
}
Chạy:
Full name: GetTypeBeingWeird.TestClass
Method group: ''
Closure: 'GetTypeBeingWeird.TestClass'
Tôi có nên đóng cái cũ hơn không? Không chắc chắn, chào đón ý kiến về điều này ... – nawfal