Sim*_*mon 4 .net c# immutability
因此,在设计不可变类时,它应该使用get属性
public sealed class Person
{
readonly string name;
readonly int age;
public Person(string name, int age)
{
this.name = name;
this.age = age;
}
public string Name
{
get { return name; }
}
public int Age
{
get { return age; }
}
}
Run Code Online (Sandbox Code Playgroud)
或者公开只读字段是否有效
public sealed class Person
{
public readonly string Name;
public readonly int Age;
public Person(string name, int age)
{
Name = name;
Age = age;
}
}
Run Code Online (Sandbox Code Playgroud)
O. *_*per 10
虽然这两个选项都会为您提供无法从外部更改其字段的对象,但相同的准则适用于不可变对象,否则:
使用属性而不是公开暴露字段仍然是一个优势; 您没有检查任何输入值,但是,您的类型的未来版本可能会计算某些值,而不是直接从内部字段读取它们.通过使用属性,您可以隐藏该实现细节,从而提高您未来更改的灵活性.
| 归档时间: |
|
| 查看次数: |
159 次 |
| 最近记录: |