ARW*_*ARW 2 c# generics casting
我有这个方法:
public T GetInput<T>()
{
T result;
if( (typeof)T == Type.GetType("string"))
{
result = GetStringInput(); // returns a string
}
// Etc for a bunch of different types
}
Run Code Online (Sandbox Code Playgroud)
我得到的错误是我不能隐含地将字符串强制转换为"T".该函数的要点是能够获得任何指定类型的输入,并确保在返回之前对输入进行类型验证.想法?
如果您确定它是正确的代码,则不能简单地使用字符串事件在编译时类型T上分配未确定的变量.编译器不允许它.要强制这样做,你可以这样做:
result = (T)(object)GetStringInput();
Run Code Online (Sandbox Code Playgroud)
这个双重演员将明确告诉编译器你负责这一行.
| 归档时间: |
|
| 查看次数: |
78 次 |
| 最近记录: |