C#中的不可变数据类型介绍
在C#中,数据类型可以分为两类:可变数据类型和不可变数据类型。可变数据类型是在运行时可以被修改的,而不可变数据类型则不可修改。本文将介绍C#中的不可变数据类型,包括不可变对象和不可变集合。
不可变对象
不可变对象是指创建后不可修改的对象。C#中的字符串就是一个常见的不可变对象。当对字符串进行修改时,实际上是创建了一个新的字符串对象,而原字符串对象不会发生变化。
示例1:使用不可变对象来存储身份证号码
public class Person
{
public string Name { get; set; }
public string IDCard { get; }
public Person(string name, string idCard)
{
Name = name;
IDCard = idCard;
}
}
// 使用
Person person1 = new Person("Tom", "410801199912345678");
在上面的示例中,IDCard属性在设置后就不可修改,保证了身份证号码的不可变性。
不可变集合
不可变集合是指创建后不可修改的集合。C#4.0中引入了System.Collections.Immutable命名空间,这个命名空间提供了一系列不可变集合类型,包括ImmutableList、ImmutableDictionary等。
示例2:使用不可变集合来保存学生成绩
var scores = ImmutableDictionary.Create<string, int>().Add("小明", 80).Add("小红", 90).Add("小刚", 70);
// 获取小明的成绩
int score = scores["小明"];
在上面的示例中,使用了ImmutableDictionary来存储学生成绩,并且在创建时指定了键值对,这个集合在创建后就不可修改,保证了成绩的不可变性。
总结
不可变数据类型可以帮助我们编写更加健壮、可靠的程序。在需要保证数据不被修改时,我们可以使用不可变对象来保存这些数据;在需要保存一组数据并且保证数据集合不被修改时,我们可以使用不可变集合来保存这些数据。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#中的不可变数据类型介绍(不可变对象、不可变集合) - Python技术站