c# - C# Cast / Unbox 使用变量类型
问题描述
有没有办法使用变量类型来取消装箱/强制转换,例如
var varType = typeof(int);
var variable = 5;
return (varType)variable;
解决方案
你提问的前提有问题。C# 是一种静态类型语言,每个变量的类型必须在编译时就知道。无法解决这个问题,因此您要么必须指定对象的类型,要么将dynamic
其用作类型(除非您正在执行互操作或类似的事情,否则请不要这样做)。
在您的示例中,类型varType
为Type
. 的类型variable
是int
。但是,如果您建议的内容存在于 C# 中,那么该函数的返回类型是什么?由于varType
可以保存任何类型,因此该函数的返回类型只能在运行时知道,这在静态类型语言中是不可能的。
也许如果您提供了一个更具体的示例来说明您认为需要在哪里使用类似的东西,那么可能会有更好的方法来实现这一点。
推荐阅读
- sql - 使用计算字段或其他替代方法检查 Tableau 中的重复项
- javascript - POST 成功后表单未重置
- node.js - Meteor 登录在 mongo 错误期间挂起
- javascript - 如何使用 ES6 map 函数打印 1 到 100?
- laravel-5 - 如何将 laravel 目录从 storage/app/public 更改为 public/media
- python - 如何使用 Fenics 中的功能?
- electron - 在电子应用程序上重新加载时关闭所有窗口
- android - Onclick 在 CardView 上不起作用
- node.js - 节点聚合日志
- node.js - 索环:TypeError:无法读取未定义的属性“modelSchemas”