c# - 如何在 C# 中自动转换变量?

标签 c# .net vb.net

这是一个例子。

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/

相关文章:

c# - 为什么 c# 编译器在某些情况下会发出 newobj/stobj 而不是 'call instance .ctor' 来进行结构初始化

vb.net - 捕获错误事件

c# - .NET 标签中的文本格式

c# - EPplus插入X个空行

c# - Asp.net Mvc 和 Web api 中的调度

c# - winform应用程序的图标绘制工具有哪些?

vb.net - CType 和类型特定强制转换(CInt、CBool​​、CStr)之间的区别?

c# - WCF是否缓存存储过程

c# - 整数值在 Web 服务调用中丢失

c# - 我应该如何管理大型数据表?