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

  今天公司弄了个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在现阶段还是不可能的,作为程序员学习在学习才是正道。

时间: 2024-08-22 14:51:39

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

.NET 3.x新特性之自动属性及集合初始化

今天公司弄了个VS2008 beta 2中文版,虽然很大一部分是为了JS的智能提示外,也应该好好的温习一下.NET的一些新特性,由于以前写过一些文章,但是都没有系统的学过,都只是尝一下新鲜感.不知道从那开始,所以今天就来看看自动话属性,以及对象初始化和集合初始化的一些新特性. 1.自动属性 在做一个程序是我们离不开属性,特别是实体类.我们用指头一个一个的敲着get和set及局部的变量(Fields),现在可好不用在重复敲那些东东了我们只要用到get和set,就和我们的接口声明差不多了,是不是很h

浅谈Android Studio 3.0 工具新特性的使用 Android Profiler 、Device File Explorer

前言: 其实 studio3.0的工具大家也已经使用过一段时间了,自己呢,就是从bate版开始使用的,我觉得比较好用的几个地方.就几个,可能还没用到其他的精髓. 但我觉的这个两个功能对我是比较实用的.好那么下面就给大家介绍一下吧. 正文: 话不多说咱们直接上图吧.(个人比较喜欢看图说话) 第一个(Android Profiler)我要介绍的就是这个了.(先看一下效果"震撼一下") (图-1) (图-2) (图-3) (厉害不厉害,牛逼不牛逼)那么我们怎么来操作这个工具呢,来咱们接着看图

[20131212]12c新特性建表 属性DEFAULT ON NULL.txt

[20131212]12c新特性建表 属性DEFAULT ON NULL.txt 在12c上建立表可以让插入NULL等于某个特定的值.举一个例子: SCOTT@ztest> @verBANNER                                                                               CON_ID--------------------------------------------------------------------

C# 3.0新特性初步研究 Part4:使用集合类型初始化器

集合 集合类型初始化器(Collection Initializers) 想看一段"奇怪"的代码: 1class Program 2    { 3        static void Main(string[] args) 4        { 5            var a = new Point { x = 10, y = 13 }; 6            var b = new Point { x = 33, y = 66 }; 7 8            var

Asp.Net Mvc Beta新特性之自动绑定(1)-体验篇

我们知道,在Asp.Net Mvc Preview5中加入了全新的ModelBinder特性,虽然这个特性非常的强大,但是使用起来并不是那么的友好,因此,在最新的Asp.Net Mvc Beta中,框架对这部分进行了进一步的加强,使得复杂参数的自动绑定得以实现,本文将分级部分完整探讨整个mvc框架中的modelbinder实现和完全挖掘系统自带的ModelBinder的能力,使得基于mvc框架的web开发脱离页面取值的苦海. (参见: http://www.cnblogs.com/leven/a

【动手实践】Oracle 12.2 新特性:自动的列表分区创建

2017年来了,我们要启动新的学习征程了.在过去我们一直思考,什么样的内容能够更帮助大家了解和学习到有用的知识? 这个『动手实践』栏目就是这样一个改进和尝试吧,一个小小的范例,几分钟的线上实践(感谢Oracle),就能帮助大家熟悉一个知识点,几个重要的命令.如此是否会有不一样的体验?试一试吧. 在Oracle Database 12.2 之前,如果使用列表分区,当插入的数据超过了分区列表值设定,则会抛出异常:而如果存在大量的列表值需要定义,则可能需要一一设置. 在12.2引入的新特性中 - Au

浅谈RxJava与2.0的新特性

简介 说起 RxJava ,相信诸多 Android 开发者都不会陌生.作为一个知名的响应式编程库,从前年开始逐渐变得火热,从小众到被众多 Android 开发者们广泛引入与流传,其在 GitHub 的 仓库 截止笔者写这篇文章时,已经有16400+个 star .甚至有一些大牛专门为 Android 写了 RxJava 的适配库,如 RxAndroid RxBinding RxLifecycle 为什么 RxJava 如此受到 Android 开发者们的欢迎.我想不外乎两个原因. 1. 异步

浅谈 RxJava 与 2.0 的新特性

简介 说起 RxJava ,相信诸多 Android 开发者都不会陌生.作为一个知名的响应式编程库,从前年开始逐渐变得火热,从小众到被众多 Android 开发者们广泛引入与流传,其在 GitHub 的仓库截止笔者写这篇文章时,已经有16400+个 star .甚至有一些大牛专门为 Android 写了 RxJava 的适配库,如 RxAndroid RxBinding RxLifecycle 为什么 RxJava 如此受到 Android 开发者们的欢迎.我想不外乎两个原因. 1. 异步 2.

Flash 8 新特性之线条属性的改变

作者:薛欣 经过比较细致的测试,我不能说Flash8在线条的处理上有什么惊世骇俗的创新,但它在细节方面所做的一系列改进,对我们绘制线条和图形来说,的确是带来了极大的方便和灵活性.在这一小节里,我们会讲到三点内容,一是线条的端点和接合.二是可填充的线条.三是对象绘制模式. 一.线条的端点和接合 在之前的Flash版本中,线条的端点都是圆头儿的.这在实战中是极其不方便的,以至于我们需要一个尖头儿或方头儿的线条时(例如表针儿.铅笔.尺子等),还得先把线条转化成填充,然后编辑成型,非常麻烦误工.而在新版