int number = 5;
Type dynamicType = number.GetType(); // dynamic type is "int"
dynamicType x = (number as dynamicType);发布于 2010-04-23 20:59:25
您希望编译器在稍后的代码中如何处理变量x?它对此一无所知。所以它不能解析任何方法调用等等。
基本上,您所追求的是动态类型,它在C# 4中通过“动态”伪类型得到支持:
int number = 5;
dynamic d = number;
// Calls to d are resolved at execution time, so this compiles:
d.ThisWillThrowAtExecutionTime();发布于 2010-04-23 20:58:25
type是表示有关类型的信息的对象。它不是表示该类型的变量的指示符。
发布于 2010-04-23 21:09:41
SomeObject myObject = new SomeObject();
Type t = myObject.GetType();
SomeObject myOtherObject = (SomeObject)Activator.CreateInstance(t);这样做的能力可以一直追溯到.Net v1.0。不需要花哨的动态类型或类似的东西。
使用更复杂的构造函数构造对象需要更多的工作,但这是相同的想法。
https://stackoverflow.com/questions/2698637
复制相似问题