这是一个例子。
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
:
object data = Convert.ChangeType(toBeCasted, whatIsMyType);
当然,这只适用于有限的一组类型 - 但首先转换也是如此。如果您能告诉我们更多有关您正在尝试做什么的信息,将会有所帮助。很可能有更好的方法。
关于c# - 如何在 C# 中自动转换变量?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15909677/