C#语法糖之第一篇:自动属性&隐式类型

王朝学院·作者佚名  2016-05-17
窄屏简体版  字體: 小  |  中  |  大  |  超大  

C#语法糖之第一篇:自动属性&隐式类型今天给大家分享一下C#语法糖的简单的两个知识点吧。

自动属性:在 C# 4.0 和更高版本中,当属性的访问器中不需要其他逻辑时,自动实现的属性可使属性声明更加简洁。 客户端代码还可通过这些属性创建对象。 get and set accessors." id="mt3">如下面的示例所示声明属性时,编译器将创建一个私有的匿名支持字段,该字段只能通过属性的 get 和 set 访问器进行访问。

我们C#4.0以前的传统方式的属性是用来封装字段的,这里我简单的对比一下这两种方式的不同及关联关系吧:

public class AutoPRoperty { //传统方式定义属性必须先定义字段来封装 private string name; public string Name { get { return name; } set { value = name; } } //自动属性 public string LoginName { get; set; } }

从代码的字数上看传统方式的写法比较繁琐,自动属性一行代码即可实现,然后到底这两个功能上有什么区别呢,这里我用反编译工具来看了一下(反编译工具用的是.Net Reflector 8.3),具体效果如下:

虽然我们在写代码是没有写字段,但是编译器帮我们自动生成字段,然后在每个属性的get和set访问器在看一下会发现

//传统方式public void set_Name(string value){ value = this.name;}public string get_Name(){ return this.name;}

//自动属性[CompilerGenerated]public void set_LoginName(string value){ this.<LoginName>k__BackingField = value;}[CompilerGenerated]public string get_LoginName(){ return this.<LoginName>k__BackingField;}

使用自动属性注意的地方:从上面代码上可以看出来访问器格式基本差不多,就是自动属性访问器上标记为编译器生成,然后字段也是编译器生成的字段。所以传统方式和自动属性对于编译去来说效果是一样的,只不过这些繁琐的操作编译器帮我们生成了,以减少程序员写的代码和让代码的逻辑很清晰,很简短。

1、 对于自动实现的属性,需要 get 和 set 访问器。 要使该类不可变,请将 set 访问器声明为 private。 set accessor, you cannot use an object initializer to initialize the property." id="mt5">但是,声明私有 set 访问器时,不能使用对象初始值来初始化属性。 必须使用构造函数或工厂方法。

public string CustomerId { get; private set; }public AutoProperty(string _CustomerId) { this.CustomerId = _CustomerId; }

隐式类型:可 以赋予局部变量推断“类型”var 而不是显式类型。 var 关键字指示编译器根据初始化语句右侧的表达式推断变量的类型。 推断类型可以是内置类型、匿名类型、用户定义类型或 .NET Framework 类库中定义的类型,这是微软MSDN给出的定义,其实隐式类型简单的理解就是程序员在声明变量可以不用指定类型,由编译器根据值来指定类型。2、 如果需要在属性中有复杂的业务逻辑的话还得用传统的属性来实现,不管什么东西都有它的利与弊,只要我们适当的利用即可。

理论就说怎么多,下面咱们直接帖代码:

public static void Test() { //传统方式定义变量 string CustomerId = "客户"; var NewCustomerId = "隐式类型"; var Age = 20; var Array = new string[] {"111","222"}; object objectstring = "object"; Console.WriteLine("传统类型:"+CustomerId+" "+"隐式类型"+NewCustomerId);}

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

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航