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

首頁 > 編程 > C# > 正文

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

2020-01-24 01:18:10
字體:
來源:轉載
供稿:網友

使用對象初始值設定項初始化對象

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

下面的示例演示如何使用對象初始值設定項初始化新的 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;  }}

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

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}};


使用集合初始值設定項初始化字典

Dictionary<TKey, TValue> 包含鍵/值對集合。 它的 Add 方法采用兩個參數,一個用于鍵,另一個用于值。 若要初始化 Dictionary<TKey, TValue> 或其 Add 方法采用多個參數的任何集合,請將每組參數括在大括號中,如下面的示例所示。
示例
在下面的代碼示例中,使用 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}}  };}

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 行唐县| 临泽县| 乌鲁木齐县| 潼南县| 定州市| 西藏| 修文县| 永春县| 蛟河市| 武宁县| 山阴县| 辛集市| 建瓯市| 胶南市| 界首市| 德昌县| 卢氏县| 荥阳市| 梁山县| 鄯善县| 永春县| 甘谷县| 安福县| 柘荣县| 禄劝| 漯河市| 安陆市| 集安市| 黑山县| 岢岚县| 神农架林区| 遵义市| 湖口县| 阿坝| 合肥市| 乾安县| 义乌市| 宜章县| 叙永县| 成安县| 酉阳|