基元类型:编译器直接支持的数据类型

基元类型直接映射到FCL类库上,如int 和Int32是等价的,只不过是int是c#提供的,Int32是FCL类库提供的。

int只是Int32的别名

using int=System.Int32;

使用Int32:

System.Int32 number = new System.Int32();
number = 2;
Console.WriteLine(number);
Console.ReadKey();

生成IL代码为:

.method private hidebysig static void Main(string[] args) cil managed
{
.entrypoint
.maxstack 1
.locals init (
[0] int32 number)
L_0000: nop
L_0001: ldc.i4.0
L_0002: stloc.0
L_0003: ldc.i4.2
L_0004: stloc.0
L_0005: ldloc.0
L_0006: call void [mscorlib]System.Console::WriteLine(int32)
L_000b: nop
L_000c: call valuetype [mscorlib]System.ConsoleKeyInfo [mscorlib]System.Console::ReadKey()
L_0011: pop
L_0012: ret
}

使用int

int number = new int();
number = 2;
Console.WriteLine(number);
Console.ReadKey();

生成IL代码为:

.method private hidebysig static void Main(string[] args) cil managed
{
.entrypoint
.maxstack 1
.locals init (
[0] int32 number)
L_0000: nop
L_0001: ldc.i4.0
L_0002: stloc.0
L_0003: ldc.i4.2
L_0004: stloc.0
L_0005: ldloc.0
L_0006: call void [mscorlib]System.Console::WriteLine(int32)
L_000b: nop
L_000c: call valuetype [mscorlib]System.ConsoleKeyInfo[mscorlib]System.Console::ReadKey()
L_0011: pop
L_0012: ret
}

通过生成的IL代码对比,发现int和Int32生成的IL代码是一样

上面给number赋值的语法,很不方便,相信没有人会这样,幸好编译器允许代码以简化的语法来操纵他们,

int number=2;   //C#简化的语法
Int32 number=2; //FCL简化的语法

最新文章

  1. CLR via C# 3rd - 04 - Type Fundamentals
  2. django中间件
  3. 【读书笔记】iOS-使用Web Service-基于客户端服务器结构的网络通信(一)
  4. java向oracle数据库中插入当前时间
  5. Java:Map
  6. 从0开始学Java——JSP和Servlet——jsp转servlet出错的三个典型场景
  7. AngularJS 'Controller As'用法
  8. HDU 4462
  9. Mvc项目右键没有控制器选项
  10. Windows Media Player安装了却不能播放网页上的视频
  11. Selenium 实现联想下拉框
  12. iOS 使用GBK编码的hmacMD5算法
  13. vmware workstation 10.0.1 install mac os mavericks
  14. Delphi过程函数传递参数的八种方式
  15. hadoop集群安装
  16. Android 常见adb命令
  17. WCF TOOL CODE
  18. ZJOI2018 round^2 游记
  19. python之爬虫_并发(串行、多线程、多进程、异步IO)
  20. 跨境网上收款 找PayPal没错(获取Client ID 和 secret)

热门文章

  1. HTTPS协议工作流程
  2. GitHub+Octopress搭建免费blog
  3. android 获取GPS定位
  4. 【转载】GitHub中国区前100名到底是什么样的人
  5. Git 的使用Git Bash和Git GUI
  6. EasyHook库系列使用教程之四钩子的启动与停止
  7. Swagger学习和实践
  8. 在jsp中拿到applicationContext
  9. NYOJ 722 数独 【DFS】+【预处理】
  10. 蜗牛—Android基础之button监听器