最佳答案
我们有一个调用 Type.GetType
静态方法的非常简单的程序。这两个示例都应该返回一个有效的类型实例。只有第二个是真的。看起来 GetType
使用的堆栈抓取发生了一些奇怪的事情,但是这里的问题究竟是什么呢?是 bug 还是什么模糊的特性?
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));
}
}
跑步:
Full name: GetTypeBeingWeird.TestClass
Method group: ''
Closure: 'GetTypeBeingWeird.TestClass'