一起谈.NET技术,.NET 3.x新特性之自动属性及集合初始化

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

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

  1.自动属性

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

  OK看个例子先,在.NET 2.0下我们声明一个实体类要有如下做法,这个应该没什么意见吧。

 

 
 
public class Person {
private string firstName;
private string lastName;
private int age;
public string FirstName {
get {
  
return this .firstName;
 }
 
set {
  
this .firstName = value;
 }
}
public string LastName {
 
get {
  
return this .lastName;
 }
 
set {
  
this .lastName = value;
 }
}
public int Age {
 
get {
  
return this .age;
 }
 
set {
  
this .age = value;
 }
}

 

在.NET 3.x中我们可以省了很多东东,代码也变得简单很多,代码如下:

 

 
 
public class Person {
 
public string FirstName {
  
get ; set ;
 }
 
public string LastName {
  
get ; set ;
 }
 
public int Age {
  
get ; set ;
 }

  2.对象的初始化

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

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

  3.集合的初始化

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

 
 
// .NET 2.0;
List < Person > people = new List < Person > ();
people.Add(
new Person { FirstName = " 小兵 " , LastName = " 网魂 " , Age = 23 });
people.Add(
new Person { FirstName = " QQing " , LastName = " Lai " , Age = 22 });
people.Add(
new Person { FirstName = " Xbing " , LastName = " My " , Age = 20 });

// .NET 3.x;
List < Person > people = new List < Person > {
 
new Person { FirstName = " 小兵 " , LastName = " 网魂 " , Age = 23 },
 
new Person { FirstName = " QQing " , LastName = " Lai " , Age = 22 },
 
new Person { FirstName = " Xbing " , LastName = " My " , Age = 20 }
};
// 记得这边是要有";"的,不然就会出错的

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

目录
相关文章
|
API
.net core工具组件系列之Autofac—— 第二篇:Autofac的3种依赖注入方式(构造函数注入、属性注入和方法注入),以及在过滤器里面实现依赖注入
本篇文章接前一篇,建议可以先看前篇文章,再看本文,会有更好的效果。前一篇跳转链接:https://www.cnblogs.com/weskynet/p/15046999.html
404 0
.net core工具组件系列之Autofac—— 第二篇:Autofac的3种依赖注入方式(构造函数注入、属性注入和方法注入),以及在过滤器里面实现依赖注入
|
1月前
|
开发框架 安全 .NET
C# .NET面试系列三:集合、异常、泛型、LINQ、委托、EF!
<h2>集合、异常、泛型、LINQ、委托、EF! #### 1. IList 接口与 List 的区别是什么? IList 接口和 List 类是C#中集合的两个相关但不同的概念。下面是它们的主要区别: <b>IList 接口</b> IList 接口是C#中定义的一个泛型接口,位于 System.Collections 命名空间。它派生自 ICollection 接口,定义了一个可以通过索引访问的有序集合。 ```c# IList 接口包含一系列索引化的属性和方法,允许按索引访问、插入、移除元素等。 由于是接口,它只定义了成员的契约,而不提供具体的实现。类似于 IEnumera
148 2
|
12月前
|
缓存 前端开发 JavaScript
采用.Net Core技术框架开发的医院云LIS平台源码,B/S架构
基于B/S架构的医学实验室检验系统源码,整个系统的运行基于WEB层面,只需要在对应的工作台安装一个浏览器软件有外网即可访问。全套系统采用云部署模式,部署一套可支持多家医院检验科共同使用。 采用.Net Core新的技术框架、DEV报表、前端js封装、分布式文件存储、分布式缓存等,支持LIS独立部署,Docker部署等多种方式。
|
XML JSON 缓存
推荐一个.Net常用代码集合,助你高效完成业务
这个代码集合,都是一些常用的功能性代码,每个类都是独立、没有相互依赖,可以单独使用。
161 0
推荐一个.Net常用代码集合,助你高效完成业务
|
XML JSON 数据格式
.NET中XML序列化和反序列化常用类和用来控制XML序列化的属性总结(XmlSerializer,XmlTypeAttribute,XmlElementAttribute,XmlAttributeAttribute,XmlArrayAttribute...)
.NET中XML序列化和反序列化常用类和用来控制XML序列化的属性总结(XmlSerializer,XmlTypeAttribute,XmlElementAttribute,XmlAttributeAttribute,XmlArrayAttribute...)
240 0
.NET中将集合M内非空参数值的参数按照参数名ASCII码从小到大排序(字典序),并使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串stringA
.NET中将集合M内非空参数值的参数按照参数名ASCII码从小到大排序(字典序),并使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串stringA
226 0
|
存储 开发框架 自然语言处理
【.Net底层剖析】3.用IL来理解属性
【.Net底层剖析】3.用IL来理解属性
132 0
【.Net底层剖析】3.用IL来理解属性
|
JSON 物联网 数据格式
阿里云物联网.NET Core客户端 CZGL.AliloTClient:5.设置设备属性
阿里云物联网.NET Core客户端 CZGL.AliloTClient:5.设置设备属性
325 0
|
存储 传感器 JSON
阿里云物联网.NET Core客户端|CZGL.AliloTClient:4.设备上报属性
阿里云物联网.NET Core客户端|CZGL.AliloTClient:4.设备上报属性
339 0
|
存储 JSON 物联网
.NET Core 跨平台物联关网开发:上报属性(三)
.NET Core 跨平台物联关网开发:上报属性(三)
184 0
.NET Core 跨平台物联关网开发:上报属性(三)