C# 中的只读结构体(readonly struct)
翻译自 John Demetriou 2018年4月8日 的文章 《C# 7.2 – Let’s Talk About Readonly Structs》 [1] 在本文中,我们来聊一聊从 C# 7.2 开始出现的一个特性 readonly struct 。 任一结构体都可以有公共属性、私有属性访问器等等。我们从以下结构体示例来开始讨论: public struct Person { public string Name { get; set; } public string Surname { get; set; } public int Age { get; set; } public Person(string name, string surname, int age) { Name = name; Surname = surname; Age = age; } public void Replace(Person other) { this = other; } } 如您所见,所有属性都可以公开访问和修改。更糟糕的是,我们甚至可以访问 this (通过调用 Replace 方法),将其更改为同一结构体类型的另一个实例。 这就是 readonly 关键字出现的原因。如果( 仅 )在结构体的定义中添加它,如下所示: public readonly struct Person