[.NET 3.x新特性一]自动属性,对象初始化及集合初始化

简介:
  今天公司弄了个VS2008 beta 2中文版,虽然很大一部分是为了JS的智能提示外,也应该好好的温习一下.NET的一些新特性,由于以前写过一些文章,但是都没有系统的学过,都只是尝一下新鲜感。不知道从那开始,所以今天就来看看自动话属性,以及对象初始化和集合初始化的一些新特性。

1.自动属性

    在做一个程序是我们离不开属性,特别是实体类。我们用指头一个一个的敲着get和set及局部的变量(Fields),现在可好不用在重复敲那些东东了我们只要用到get和set,就和我们的接口声明差不多了,是不是很happy。

    OK看个例子先,在.NET 2.0下我们声明一个实体类要有如下做法,这个应该没什么意见吧。
 1    public   class  Person {
 2 
 3           private   string  firstName;
 4           private   string  lastName;
 5           private   int  age;
 6          
 7           public   string  FirstName {
 8 
 9               get  {
10                   return   this .firstName;
11              }
12               set  {
13                   this .firstName  =  value;
14              }
15          }
16 
17           public   string  LastName {
18 
19               get  {
20                   return   this .lastName;
21              }
22               set  {
23                   this .lastName  =  value;
24              }
25          }        
26          
27           public   int  Age {
28 
29               get  {
30                   return   this .age;
31              }
32               set  {
33                   this .age  =  value;
34              }
35          }
36      }

    在.NET 3.x中我们可以省了很多东东,代码也变得简单很多,代码如下:
 1  public   class  Person {
 2      
 3           public   string  FirstName {
 4               get set ;
 5          }
 6 
 7           public   string  LastName {
 8               get set ;
 9          }        
10          
11           public   int  Age {
12               get set ;
13          }
14      }

2.对象的初始化

     我们省了很多的代码,手指也少动了,没办法人总是越来越懒的吗,下面我们来看看对象的初始化也是简单了不少,看代码就知道了,代码如下:第一个代码是.NET2.0中的初始化方式,而第二个是.NET 3.x的初始化方式,当然.NET2.0的方式也适合3.x的版本。

1  // .NET 2.0:
2     Person person  =   new  Person();
3     person.FirstName  =   " 小兵 " ;
4     person.LastName  =   " 网魂 " ;
5     person.Age  =   23 ;
6  // .NET 3.x:
7   Person person  =   new  Person { FirstName  =   " 小兵 " , LastName  =   " 网魂 " , Age  =   23 };

3.集合的初始化

    其实我们写程序也是封装在封装来为我们节省更多的东东,复用更多的东东。微软为我们做的也是越来越多,这是这篇文章的最后一个主题就是集合的初始化,我么一起来对照一下。

 1  // .NET 2.0;
 2  List < Person >  people  =   new  List < Person > ();
 3              
 4    people.Add(  new  Person { FirstName  =   " 小兵 " , LastName  =   " 网魂 " , Age  =   23  } );
 5    people.Add(  new  Person { FirstName  =   " QQing " , LastName  =   " Lai " , Age  =   22  } );
 6    people.Add(  new  Person { FirstName  =   " Xbing " , LastName  =   " My " , Age  =   20  } );
 7 
 8  // .NET 3.x;
 9     List < Person >  people  =   new  List < Person >  {
10         new  Person { FirstName  =   " 小兵 " , LastName  =   " 网魂 " , Age  =   23  },
11         new  Person { FirstName  =   " QQing " , LastName  =   " Lai " , Age  =   22  },
12         new  Person { FirstName  =   " Xbing " , LastName  =   " My " , Age  =   20  }
13     }; //记得这边是要有";"的,不然就会出错的。

    OK以上就是我们今天所温习的一个简单的特性,利用它们我们可以很简单的来书写实体类了,虽然在程序中完全支持.NET 3.x在现阶段还是不可能的,作为程序员学习在学习才是正道。

本文转自网魂小兵博客园博客,原文链接:http://www.cnblogs.com/xdotnet/archive/2007/09/04/dotnet_3x_autoproperties_initialize_objects_collections.html,如需转载请自行联系原作者

相关文章
|
4月前
|
开发框架 .NET API
.NET 10首个预览版发布:重大改进与新特性概览!
.NET 10首个预览版发布:重大改进与新特性概览!
.NET 10首个预览版发布:重大改进与新特性概览!
|
8月前
|
Java 物联网 C#
C#/.NET/.NET Core学习路线集合,学习不迷路!
C#/.NET/.NET Core学习路线集合,学习不迷路!
341 0
|
11月前
|
人工智能 开发框架 .NET
.NET技术的强大功能:.NET技术的基础特性、在现代开发中的应用、以及它如何助力未来的软件开发。
.NET技术是软件开发领域的核心支柱,以其强大功能、灵活性及安全性广受认可。本文分三部分解析:基础特性如多语言支持、统一运行时环境;现代应用如企业级与Web开发、移动应用、云服务及游戏开发;以及未来趋势如性能优化、容器化、AI集成等,展望.NET在不断变化的技术环境中持续发展与创新。
284 4
|
5月前
|
人工智能 机器人
D1net阅闻 | 谷歌DeepMind研究发现LLM新特性
D1net阅闻 | 谷歌DeepMind研究发现LLM新特性
|
8月前
|
自然语言处理 物联网 图形学
.NET 技术凭借其独特的优势和特性,为开发者们提供了一种高效、可靠且富有创造力的开发体验
本文深入探讨了.NET技术的独特优势及其在多个领域的应用,包括企业级应用、Web应用、桌面应用、移动应用和游戏开发。通过强大的工具集、高效的代码管理、跨平台支持及稳定的性能,.NET为开发者提供了高效、可靠的开发体验,并面对技术更新和竞争压力,不断创新发展。
319 7
|
8月前
|
开发框架 .NET C#
.NET 技术凭借高效开发环境、强大框架支持及跨平台特性,在软件开发中占据重要地位
.NET 技术凭借高效开发环境、强大框架支持及跨平台特性,在软件开发中占据重要地位。从企业应用到电子商务,再到移动开发,.NET 均展现出卓越性能,助力开发者提升效率与项目质量,推动行业持续发展。
154 4
|
9月前
|
JSON C# 开发者
C#语言新特性深度剖析:提升你的.NET开发效率
【10月更文挑战第15天】C#语言凭借其强大的功能和易用性深受开发者喜爱。随着.NET平台的演进,C#不断引入新特性,如C# 7.0的模式匹配和C# 8.0的异步流,显著提升了开发效率和代码可维护性。本文将深入探讨这些新特性,助力开发者在.NET开发中更高效地利用它们。
111 1
|
9月前
|
开发框架 NoSQL MongoDB
C#/.NET/.NET Core开发实战教程集合
C#/.NET/.NET Core开发实战教程集合
177 1
|
9月前
|
存储 编译器
.Net特性Attribute的高级使用
【10月更文挑战第14天】在.NET中,特性(Attribute)是一种强大的机制,用于在代码中添加元数据。本文介绍了特性的高级用法,包括自定义特性、通过反射读取特性、条件编译与特性结合、多个特性应用以及特性继承。通过示例展示了如何创建自定义特性类、应用自定义特性,并通过反射获取特性信息。此外,还介绍了如何利用条件编译符号实现不同版本的代码控制,以及如何在一个代码元素上应用多个特性。最后,探讨了如何通过`AttributeUsage`控制特性的继承行为。
195 1
|
11月前
|
数据采集 API 开发者
.NET 8新特性:使用ConfigurePrimaryHttpMessageHandler定制HTTP请求
在.NET 8中,通过`ConfigurePrimaryHttpMessageHandler`方法,开发者能更精细地控制HTTP请求,这对于构建高效爬虫尤为重要。此特性支持定制代理IP、管理Cookie与User-Agent,结合多线程技术,有效应对网络限制及提高数据采集效率。示例代码展示了如何设置代理服务器、模拟用户行为及并发请求,从而在遵守网站规则的同时,实现快速稳定的数据抓取。
183 0
.NET 8新特性:使用ConfigurePrimaryHttpMessageHandler定制HTTP请求