c语言中Gretchen函数的功能,详解C#中使用对象或集合的初始值设定项初始化的操作...

本文介绍了如何使用对象初始值设定项初始化类型对象,包括命名对象、使用构造函数和默认构造函数,以及集合初始值设定项在初始化StudentName类型实例和集合(如List和Dictionary)的应用。重点讲解了不同构造函数的使用和默认构造函数在处理对象初始值设定项中的角色。
摘要由CSDN通过智能技术生成

使用对象初始值设定项初始化对象

可以使用对象初始值设定项以声明方式初始化类型对象,而无需显式调用类型的构造函数。

下面的示例演示如何将对象初始值设定项用于命名对象。编译器通过先访问默认实例构造函数然后处理成员初始化处理对象初始值设定项。因此,如果默认构造函数在类中声明为 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 0

Craig 0

183

Craig 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 students = new List()

{

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 包含键/值对集合。 它的 Add 方法采用两个参数,一个用于键,另一个用于值。 若要初始化 Dictionary 或其 Add 方法采用多个参数的任何集合,请将每组参数括在大括号中,如下面的示例所示。

示例

在下面的代码示例中,使用 StudentName 类型的实例初始化一个 Dictionary。

class StudentName

{

public string FirstName { get; set; }

public string LastName { get; set; }

public int ID { get; set; }

}

class CollInit

{

Dictionary students = new Dictionary()

{

{ 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 中的键/值对的初始值。 最后,字典的整个集合初始值括在一对大括号内。

时间: 2016-01-28

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值