C# 3.0新语言特性浅析

开发 后端
这里介绍C# 3.0新语言特性中的自动属性,C# 3.0新语言特性在.NET2.0基础上进行了改进,这些改进的功能可以大大简化我们编写程序。

C# 3.0有很多值得学习的地方,这里我们主要介绍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#自动属性可以避免原来这样我们手工声明一个私有成员变量以及编写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代码反汇编器)工具来分析程序集或者模块的内容。

【编辑推荐】

  1. C#参差数组初始化概述
  2. C#数组初始化全面分析
  3. C#一维数组和多维数组浅谈
  4. C#参差数组初始化概述
  5. C#动态数组实例介绍
责任编辑:佚名 来源: IT168
相关推荐

2009-09-18 09:59:39

C# CLR

2009-08-27 16:24:48

扩展方法C# 3.0新特性

2011-11-14 09:56:17

C++

2009-08-03 16:28:53

Java语言与C#语言

2009-07-31 17:28:35

C#语言调用DLL

2009-08-19 16:50:32

Visual C#C#语言特性

2009-08-31 14:45:07

Visual C# 3

2009-05-26 09:28:22

C# 4.0dynamic动态类型

2009-04-03 17:04:22

FanJavaC#

2009-08-28 17:19:15

C#语言学习

2016-10-13 13:33:41

反射特性c#

2009-08-07 17:25:37

C# SortedLi

2009-08-17 18:34:50

C# ChangeCo

2009-08-14 17:45:52

C# ArrayLis

2009-08-25 17:59:49

C#入门

2009-09-10 14:52:55

C# get

2009-08-26 13:07:07

C#交错数组

2009-08-27 11:43:31

C#语法

2009-08-27 13:30:11

C# interfac

2009-08-14 15:23:10

C#使用ErrorPr
点赞
收藏

51CTO技术栈公众号