typeof()参数 - 它是如何工作的?

LEM*_*ANE 1 .net c#

在下面的代码中:

string GetName(Type type)    
{       
    return ((type)this.obj).Name;    
}    

void Run()    
{       
    string name = GetName(typeof(MyClass));    
}
Run Code Online (Sandbox Code Playgroud)

我得到一个"无法找到类型或名称空间(你是否缺少使用指令或程序集引用?)"错误.我该怎么做才能纠正这个问题?

Vde*_*edT 7

你不能强制转换为实例!

type是Type类的实例,如果要转换为某个Type,请使用Generics

void GetName<T>() where T : IObjectWithName { return ((T)this.object).Name; }
Run Code Online (Sandbox Code Playgroud)

然后你可以打电话

string name = GetName<MyClass>();
Run Code Online (Sandbox Code Playgroud)

如果这是有感觉的.