c# - 使用对象类型存储一个int值时,为什么object.GetType()返回system.Int32?
问题描述
如下代码:
object i = 11;
Console.WriteLine(i.GetType());
它打印出“System.Int32”,为什么?我认为它应该是“system.object”。
解决方案
GetType()
返回值引用的对象的实际类型。它不返回用于访问对象的变量的类型。所以作为一个更简单的例子:
object x = "this is a string";
Console.WriteLine(x.GetType()); // Prints System.String
在这种情况下,类型是“装箱System.Int32
” - 但大多数 .NET 不区分“常规值类型”和“与值类型等效的装箱类型”,包括GetType()
.
推荐阅读
- eclipse - Maven 和 EJB (JEE)
- html - 主体上带有 Webpack 和 Symfony 的背景颜色
- ffmpeg - 使用 ss 后输出流中的非单调 DTS
- docker - docker私有注册表作为本地机器和服务器机器中的默认注册表
- elasticsearch - Elaticsearch 对单词少的文档有好处吗
- javascript - 在 lit-element 中重用 firebase 常量
- android - 为什么只获取用户名?
- phpmyadmin - PhpMyAdmin 无法加密到 MD5
- r - 加载Javascript后反应输入不起作用
- ruby - 将优雅的方式添加到已包含的模块中?