使用Type变量声明变量

Vac*_*ano 21 c# c#-4.0

我有这个代码:

Type leftType = workItem[LeftFieldName].GetType();
Run Code Online (Sandbox Code Playgroud)

然后我想声明一个该类型的变量:

leftType someVar;
Run Code Online (Sandbox Code Playgroud)

那可能吗?

Aus*_*nen 25

您可以执行类似这样的操作并将它们转换为已知接口.

var someVar = Convert.ChangeType(someOriginalValue, workItem[LeftFieldName].GetType());
var someVar = Activator.CreateInstance(workItem[LeftFieldName].GetType());
Run Code Online (Sandbox Code Playgroud)

如果更换vardynamic(和你使用的是.NET 4),你可以打电话给你的方法,希望对someVar对象.如果它们不存在,您只会得到一个MissingMethodException.


SLa*_*aks 10

这是不可能的.

变量类型是编译时的概念; 声明一个直到运行时才知道的类型的变量是没有意义的.
你将无法对变量做任何事情,因为你不知道它是什么类型.

您可能正在寻找dynamic关键字.