从类属性返回只读集合的​​正确方法

时间:2014-01-21 20:00:55

标签: c#

在我的类中我有一个返回字符串数组的属性,我想让它只读。什么是惯用的方法呢?

现在我有这个:

class MyClass
{
    string[] MyStrings { get; set; }
}

2 个答案:

答案 0 :(得分:1)

如果你最关心的是数据的完整性,你总是可以返回数组的副本。

另见https://softwareengineering.stackexchange.com/questions/185166/best-practices-returning-read-only-object,有一些有趣的观点。

答案 1 :(得分:0)

您可以将数组作为IEnumerable<string>返回,这将只允许枚举,但仍然可以将其强制转换回string[]并修改元素:

IEnumerable<string> MyIEnumerableOfStrings { get { return MyStrings; } }