假设我有 2 个属性
public readonly list<int> numberListReadonly { get; set; }
public list<int> numberListPrivateSet { get; private set; }
对于那些我可以在 Foo 中有一个构造函数/私有函数的属性,我可以启动这些列表而不会出错
public Foo()
{
numberListReadonly = new list<int>();
numberListPrivateSet = new list<int>();
}
public void FooInside()
{
numberListReadonly = new list<int>();
numberListPrivateSet = new list<int>();
}
当我从课外访问时
void FooOutside()
{
Foo.numberListReadonly = new List<int>();
Foo.numberListPrivateSet = new List<int>()
}
编译器抛出错误,这是预期的。
“Foo.numberListReadonly 不能分配给——它是只读的”
“Foo.numberListPrivateSet 不能分配给——它是只读的”
我做了一个搜索,似乎“常见做法”是在“只读”属性上使用私有集,并且在类中具有“设置”的能力
那么带有 set & get 的显式只读属性是否等同于 get & 私有集?