为什么在C#中可以直接使用1,100这些整型?

今天突然在想,1,2,3,100这些整数,是在C#中定义了吗?为什么能够直接使用呀.

比如,

100.ToString()

var temp = 1000

但是我看C#中Int32的定义,也只是写了一个最小值和最大值,

还是不太明白.

难道是编码?

C# Int32 源码

阅读 4k
5 个回答

C# 有隐式装箱的机制

最小值和最大值是const的,也就是所谓的静态变量。
ToString()是成员函数,
1,2,3,100分别都是Int32的实例,
实例当然就可以访问成员函数啦。

这点也是C#比Java高明的地方,值类型也可以调用方法

同样的你可以问为什么C/Java等等各种语言里为什么能直接用123?

因为是各自的语言规范规定的,对代码进行解析的时候,遇到符合整数定义的字符串(例如123),就把它解析成整形。

就像Swift的extension吧,对类型进行扩展。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题