国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

詳解C#中使用對象或集合的初始值設(shè)定項初始化的操作

2019-10-29 21:33:07
字體:
供稿:網(wǎng)友
這篇文章主要介紹了詳解C#中使用對象或集合的初始值設(shè)定項初始化的操作,文中分別講了對對象和字典的初始化,需要的朋友可以參考下
 

使用對象初始值設(shè)定項初始化對象

可以使用對象初始值設(shè)定項以聲明方式初始化類型對象,而無需顯式調(diào)用類型的構(gòu)造函數(shù)。
下面的示例演示如何將對象初始值設(shè)定項用于命名對象。編譯器通過先訪問默認(rèn)實例構(gòu)造函數(shù)然后處理成員初始化處理對象初始值設(shè)定項。因此,如果默認(rèn)構(gòu)造函數(shù)在類中聲明為 private,那么需要公共訪問權(quán)的對象初始值設(shè)定項將失敗。

下面的示例演示如何使用對象初始值設(shè)定項初始化新的 StudentName 類型。

public class Program{  public static void Main()  {    // Declare a StudentName by using the constructor that has two parameters.    StudentName student1 = new StudentName("Craig", "Playstead");    // Make the same declaration by using an object initializer and sending     // arguments for the first and last names. The default constructor is     // invoked in processing this declaration, not the constructor that has    // two parameters.    StudentName student2 = new StudentName    {      FirstName = "Craig",      LastName = "Playstead",    };    // Declare a StudentName by using an object initializer and sending     // an argument for only the ID property. No corresponding constructor is    // necessary. Only the default constructor is used to process object     // initializers.    StudentName student3 = new StudentName    {      ID = 183    };    // Declare a StudentName by using an object initializer and sending    // arguments for all three properties. No corresponding constructor is     // defined in the class.    StudentName student4 = new StudentName    {      FirstName = "Craig",      LastName = "Playstead",      ID = 116    };    System.Console.WriteLine(student1.ToString());    System.Console.WriteLine(student2.ToString());    System.Console.WriteLine(student3.ToString());    System.Console.WriteLine(student4.ToString());  }}

這段的輸出是:

Craig 0Craig 0183Craig 116
public class StudentName{  // The default constructor has no parameters. The default constructor   // is invoked in the processing of object initializers.   // You can test this by changing the access modifier from public to   // private. The declarations in Main that use object initializers will   // fail.  public StudentName() { }  // The following constructor has parameters for two of the three   // properties.   public StudentName(string first, string last)  {    FirstName = first;    LastName = last;  }  // Properties.  public string FirstName { get; set; }  public string LastName { get; set; }  public int ID { get; set; }  public override string ToString()  {    return FirstName + " " + ID;  }}

下面的示例演示如何使用集合初始值設(shè)定項初始化一個 StudentName 類型集合。請注意,集合初始值設(shè)定項是一系列由逗號分隔的對象初始值設(shè)定項。

List<StudentName> students = new List<StudentName>(){ new StudentName {FirstName="Craig", LastName="Playstead", ID=116}, new StudentName {FirstName="Shu", LastName="Ito", ID=112}, new StudentName {FirstName="Gretchen", LastName="Rivas", ID=113}, new StudentName {FirstName="Rajesh", LastName="Rotti", ID=114}};


使用集合初始值設(shè)定項初始化字典

Dictionary<TKey, TValue> 包含鍵/值對集合。 它的 Add 方法采用兩個參數(shù),一個用于鍵,另一個用于值。 若要初始化 Dictionary<TKey, TValue> 或其 Add 方法采用多個參數(shù)的任何集合,請將每組參數(shù)括在大括號中,如下面的示例所示。
示例
在下面的代碼示例中,使用 StudentName 類型的實例初始化一個 Dictionary<TKey, TValue>。

class StudentName{  public string FirstName { get; set; }  public string LastName { get; set; }  public int ID { get; set; }}class CollInit{  Dictionary<int, StudentName> students = new Dictionary<int, StudentName>()  {    { 111, new StudentName {FirstName="Sachin", LastName="Karnik", ID=211}},    { 112, new StudentName {FirstName="Dina", LastName="Salimzianova", ID=317}},    { 113, new StudentName {FirstName="Andy", LastName="Ruth", ID=198}}  };}

請注意集合的每個元素中的兩對大括號。 最內(nèi)層的大括號括起了 StudentName 的對象初始值,而最外層的大括號括起了將要添加到 studentsDictionary<TKey, TValue> 中的鍵/值對的初始值。 最后,字典的整個集合初始值括在一對大括號內(nèi)。



注:相關(guān)教程知識閱讀請移步到c#教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 宜都市| 开封县| 天祝| 张家港市| 临安市| 鹤岗市| 长春市| 七台河市| 崇礼县| 峨山| 西乌珠穆沁旗| 凤凰县| 关岭| 威宁| 图们市| 和田市| 阳曲县| 调兵山市| 裕民县| 河间市| 贵定县| 宜昌市| 顺义区| 拜城县| 阜新市| 车致| 兴业县| 忻州市| 太康县| 府谷县| 航空| 满城县| 宿松县| 文化| 四会市| 南雄市| 卢湾区| 昆明市| 通州区| 河曲县| 壶关县|