2

我有这个方法:

public T GetInput<T>()
{
     T result;

     if( (typeof)T == Type.GetType("string"))
     {
           result = GetStringInput(); // returns a string
     }

      // Etc for a bunch of different types
}

我得到的错误是我不能将字符串隐式转换为“T”。该函数的重点是能够获取任何指定类型的输入,并确保在返回之前对输入进行类型验证。想法?

4

2 回答 2

5

如果您确定它是正确的代码,则不能简单地将编译时类型T上的未确定变量分配给字符串事件。编译器不允许。要强制执行此操作,您可以执行以下操作:

result = (T)(object)GetStringInput();

这个双重转换将明确告诉编译器你对这一行负责。

于 2012-09-25T05:44:16.563 回答
4
result = (T)(object)GetStringInput();
于 2012-09-25T05:44:10.927 回答