您可以返回一个List<T>对象,但应该键入 该属性IList<T>.这将允许您更改稍后使用的列表实现,而不会破坏与针对您的库编译的现有程序集的二进制兼容性.
这个例子可能与你的构造函数模式不匹配,但它演示了我的意思(List<T>通过IList<T>属性返回):
public class Foo
{
public IList<string> AListOfStrings { get; private set; }
public Foo()
{
AListOfStrings = new List<string>();
}
}
Run Code Online (Sandbox Code Playgroud)