这是一个例子.
var tobeCasted = 1;
object data = null;
if (whatIsMyType == typeof(int)) {
data = (int)tobeCasted;
}
else if (whatIsMyType == typeof(float)) {
data = (float)tobeCasted;
}
Run Code Online (Sandbox Code Playgroud)
但是,上述代码是手动检测每种数据类型的.我正在寻找一个如下所示的一线通用解决方案:
data = (whatIsMyType)tobeCasted;
Run Code Online (Sandbox Code Playgroud)
Eri*_*ert 13
使用该Convert.ChangeType方法.该Convert课程的文件在这里; 它包含许多用于运行时类型强制的有用方法.
http://msdn.microsoft.com/library/system.convert.aspx
也就是说,尽可能避免这种情况.这种运行时输入可以被认为是一种糟糕的代码味道.
Jon*_*eet 11
在这种特殊情况下,我认为你想Convert.ChangeType:
object data = Convert.ChangeType(toBeCasted, whatIsMyType);
Run Code Online (Sandbox Code Playgroud)
当然,这只适用于有限的一组类型 - 但首先是铸造.如果您可以告诉我们更多关于您尝试做什么的信息,那将会很有帮助.可能有更好的方法.