这是一个例子。
var tobeCasted = 1;
object data = null;
if (whatIsMyType == typeof(int)) {
data = (int)tobeCasted;
}
else if (whatIsMyType == typeof(float)) {
data = (float)tobeCasted;
}
不过上面的代码是手动检测每种数据类型的。 我正在寻找如下所示的单行通用解决方案:
data = (whatIsMyType)tobeCasted;
最佳答案
使用 Convert.ChangeType
方法。 Convert
类的文档在这里;它包含许多对运行时有用的方法 type coercion .
http://msdn.microsoft.com/library/system.convert.aspx
就是说,如果可以的话,尽量避免这种情况。这种运行时类型可以被认为是错误的 code smell .
关于c# - 如何在 C# 中自动转换变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15909677/