C# 3.0 - var 隐式类型声明

  • C# 3.0 - var 隐式类型声明
  • C# 3.0 -自动属性实现
  • C# 3.0 -对象初始化设置
  • C# 3.0 -集合初始化设置
  • C# 3.0 -匿名类型
  • C# 3.0 -扩展方法
  • C# 3.0 - partial 分部(类型)
  • C# 3.0 - Lambda
  • C# 3.0 - { get; set; } 默认值
  • C# 3.0 - { get; set; } 默认值 2
  • C# 3.0 - yield

.NET Framework 3.5 的 CLR 引擎是 2.0 版本,但使用的 C# 语言是 3.0 版本。C# 3.0 有一些新特性,现快捷介绍一遍。注意 Windows 2000 环境中无法安装 .NET Framework 3.5。

var m = 1;
var arr = new[] {1, 2, 3};

如上代码,这里的 var 和 JavaScript 中的 var 是一个意思,但和 JavaScript 是有区别的,如下:

var m = 1;
m = "abc";

在 JavaScript 中,上述代码是正确的,但在 C# 里面,第二句则会报错:无法将类型“string”隐式转换为“int”。也就是说 C# 虽然可以用 var 隐式类型声明一个变量,但声明之后,该变量的类型就确定(系统去推断是什么类型)了,不可再更改,而 JavaScript 是随便可以更改的。

用 var 是不是 C# 在倒退呢?我觉得不是,如上所说,var 声明变量之后,变量类型就确定下来了,不会再变,这和 JavaScript 有本质区别。另外在用到 LINQ 时,用 var 很方便。

var person = from p in persons
             select new {p.Name, p.Age}

 

  • C# 3.0 - var 隐式类型声明
  • C# 3.0 -自动属性实现
  • C# 3.0 -对象初始化设置
  • C# 3.0 -集合初始化设置
  • C# 3.0 -匿名类型
  • C# 3.0 -扩展方法
  • C# 3.0 - partial 分部(类型)
  • C# 3.0 - Lambda
  • C# 3.0 - { get; set; } 默认值
  • C# 3.0 - { get; set; } 默认值 2
  • C# 3.0 - yield

你可能感兴趣的