首页 > 解决方案 > C# Cast / Unbox 使用变量类型

问题描述

有没有办法使用变量类型来取消装箱/强制转换,例如

var varType = typeof(int);
var variable = 5;
return (varType)variable;

标签: c#unboxing

解决方案


你提问的前提有问题。C# 是一种静态类型语言,每个变量的类型必须在编译时就知道。无法解决这个问题,因此您要么必须指定对象的类型,要么将dynamic其用作类型(除非您正在执行互操作或类似的事情,否则不要这样做)。

在您的示例中,类型varTypeType. 的类型variableint。但是,如果您建议的内容存在于 C# 中,那么该函数的返回类型是什么?由于varType可以保存任何类型,因此该函数的返回类型只能在运行时知道,这在静态类型语言中是不可能的。

也许如果您提供了一个更具体的示例来说明您认为需要在哪里使用类似的东西,那么可能会有更好的方法来实现这一点。


推荐阅读