关于自动属性和对象初始化器

当初始化类的对象时,如果有多个属性,考虑到每一种组合的话需要定义很多构造器,显然这是很麻烦的,通过对象初始化器可以很好地解决这个问题

  1. 在类中对字段初始化;
  2. 创建对象的时候使用对象初始化器;
 1 //在创建类的时候对其属性进行初始化
 2 class Polygon
 3     {
 4         public int NumSides { get; set; }
 5         public double SideLength { get; set; }
 6         public Polygon()
 7         {
 8             this.NumSides = 4;
 9             this.SideLength = 10.0;
10         }
11 }
12 //在创建对象时使用对象初始化器
13 static void DoWork()
14         {
15             // to do
16             Polygon square = new Polygon();
17             Polygon triangle = new Polygon { NumSides = 3 };
18             Polygon pentagon = new Polygon { SideLength = 15.5, NumSides = 5 };
19             Console.WriteLine("Square: number of sides is {0},length of each side is {1}",square.NumSides,square.SideLength);
20             Console.WriteLine("triangle: number of sides is {0},length of each side is {1}", triangle.NumSides, triangle.SideLength);
21             Console.WriteLine("pentagon: number of sides is {0},length of each side is {1}", pentagon.NumSides, pentagon.SideLength);
22         }
23
24         static void Main(string[] args)
25         {
26             try
27             {
28                 DoWork();
29             }
30             catch (Exception ex)
31             {
32                 Console.WriteLine(ex.Message);
33             }
34         }
时间: 2024-10-09 12:47:37

关于自动属性和对象初始化器的相关文章

C#高级知识点概要(3) - 特性、自动属性、对象集合初始化器、扩展方法、Lambda表达式和Linq查询

1.特性(Attributes) 特性(Attributes),MSDN的定义是:公共语言运行时允许你添加类似关键字的描述声明,叫做attributes, 它对程序中的元素进行标注,如类型.字段.方法和属性等.Attributes和Microsoft .NET Framework文件的元数据保存在一起,可以用来向运行时描述你的代码,或者在程序运行的时候影响应用程序的行为.例如,在一个方法前标注[Obsolete]特性,则调用该方法时VS则会提示该方法已过期的警告,如下图: 又如,在.Net Re

C#中的自动属性、隐式类型var、对象初始化器与集合初始化器、扩展方法

1.自动属性(Auto-Implemented Properties) //以前的写法 .net2.0 private string _userName; public string UserName { get { return _userName; } set { _userName= value; } } //现在 只适合3.5以上 public string_userName {get;set;} 2.隐式类型var 它是在编译已经能确定变量的类型,是根据后面的值自动推断类型,编译时把推

对象初始化器与集合初初始化器

对象初始化器的结果: 对象初始化器的优点: 1.只需要一条语句就可以完成对象初始化工作. 2.无需为简单对象提供构造函数. 3.无需为初始化不同属性而为类提供多个构造函数. 集合初始化的优点: 1.集合初始化已声明的方式初始化集合,具有更好的代码可读性.

对象初始化器和集合初始化器

C#语言开发团队在C# 3.0中增加了一个名为"对象初始化器"(object initializer)的特性 ,它能初始化一个对象中的所有允许访问的字段和属性.别以为这和你没关系.我们先来看一个你非常熟悉不过的代码. User operator=new User(); operator.ID=1; operator.Pwd=1; operator.Name="操作员" 以前是不是大家都像上面一样写代码.现在c#3.0以后我们有了更简单的方法. <pre nam

C#4.0语法糖之第三篇: 参数默认值和命名参数 对象初始化器与集合初始化器

今天继续写上一篇文章C#4.0语法糖之第二篇,在开始今天的文章之前感谢各位园友的支持,通过昨天写的文章,今天有很多园友们也提出了文章中的一些不足,再次感谢这些关心我的园友,在以后些文章的过程中不断的完善以及自我提高,给各位园友们带来更好,更高效的文章. 废话就说到这里,下面正式进入我们的今天的C#4.0语法糖,今天给大家分享一下参数默认值.命名参数.对象初始化器和集合初始化器. 参数默认值和命名参数:方法的可选参数是.net 4.0最新提出的新的功能,对应简单的重载可以使用可选参数和命名参数混合

4.8static关键字,4.9嵌套类,4.10匿名累,4.11对象初始化器

4.8主要讲了static关键字,并且具体介绍了静态字段,静态属性,静态方法,静态类,静态构造方法,单例模式,具体是采用什么方式访问的. 4.9介绍了一个概念叫嵌套类,类定义在另一个类的内部,由于嵌套类被声明的位置比较特殊,致使其访问权限与引用方式与普通类有所区别. 4.10匿名类:使用匿名类的方式创建实例,可以将一组只读属性封装到单个对象中. 4.11对象初始化器:对象初始化器可以有效解决一个类中属性过多的问题. 原文地址:https://www.cnblogs.com/ma214zq/p/1

C#对象初始化器

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace 对象初始化器 { class Program { static void Main(string[] args) { //第二种初始化 var s1 = new student("张三",23); Console.WriteLine(s1.ToString()); //第一种初始化 var s2

对象初始化器测试

/// <summary>     /// 对象初始化器测试     /// </summary>     public class Initializer     {         //测试对象初始化器         public static void Test1()         {             Student stu1 = new Student() { name = "zhangsan", age = 18 };           

集合,对象初始化器

------------------------------------10:47 2015/1/22-------------------------------------------------集合初始化器List<int> list =new List<int>(){1,2,3,4,5,6,7,8,9};//list.AddRange(new int[]{1,2,3,4,5,6,7,8,9}); 对象初始化Person p=new Person(){Name="张