注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

快乐小屋

 
 
 

日志

 
 

C#自动属性简单描述  

2013-08-28 22:39:19|  分类: C# |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
  • 摘要:这里介绍C#自动属性可以避免原来这样我们手工声明一个私有成员变量以及编写get/set逻辑,在VS2008中可以像下面这样编写一个类,编译器会自动地生成私有变量和默认的get/set 操作。

    C# 3.0新语言特性还是比较常见的东西,这里我们主要介绍C#自动属性,包括介绍C# 3.0新语言特性和改进包括等方面。

    总体来说,Visual Studio 2008和.NET 3.5是建立在.NET2.0核心的基础之上,.NET2.0核心本身将不再变化(如果不了解.NET2.0的朋友,请参看MSDN或者一些经典的书 籍),C# 3.0新语言特性在.NET2.0基础上进行了改进,这些改进的功能可以大大简化我们编写程序。关于C# 3.0新语言特性在博客园里的很多朋友都介绍了,我在这里简单介绍一下,记录自己所学的东西,也为后面的LINQ打下基础。

    C# 3.0新语言特性和改进包括:
    ◆自动属性(Auto-Implemented Properties)
    ◆隐含类型局部变量(Local Variable Type Inference)
    ◆匿名类型(Anonymous Types)
    ◆对象与集合初始化器(Object and Collection Initializers)
    ◆扩展方法(Extension Methods)
    ◆Lambda表达式和Lambda表达式树 (Lambda Expression and Lambda Expression Trees)

    C#自动属性(Auto-Implemented Properties)

    C#自动属性可以避免原来这样我们手工声明一个私有成员变量以及编写get/set逻辑,在VS2008中可以像下面这样编写一个类,编译器会自动地生成私有变量和默认的get/set 操作。你也可以分别定义get和set的“protected”等访问级别。

    在.Net2.0框架下,我们可以这样写一个User类:

  1. public class User  
  2. {  
  3. private int _id;  
  4. private string _name;  
  5. private int _age;  
  6. public int Id  
  7. {  
  8. get { return _id; }  
  9. set { _id = value; }  
  10. }  
  11. public string Name  
  12. {  
  13. get { return _name; }  
  14. set { _name = value; }  
  15. }  
  16. public int Age  
  17. {  
  18. get { return _age; }  
  19. set { _age = value; }  
  20. }  

    现在,可以这样简化:

  1. public class User  
  2. {  
  3. public int Id { get; set; }  
  4. public string Name { get; set; }  
  5. public int Age { get; set; }  

    像上面这样的空的get/set属性的话,它会自动为你在类中生成一个私有成员变量,对这个变量实现一个公开的getter 和setter。我们可以使用.NET开发环境所提供的ildasm.exe(IL代码反汇编器)工具来分析程序集或者模块的内容。

  评论这张
 
阅读(184)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018