Я понимаю, что с .NET 4.5 класс ReadOnlyCollection<T>
реализует новый интерфейс IReadOnlyCollection<T>
, но я ограничен старой версией библиотеки, которая этого не имеет.Экспозиция IList <T> или ReadOnlyCollection <T> для свойства только для чтения?
Я хотел бы знать, какие лучше считается лучшей практикой:
public sealed class OptionA {
/// <summary>
/// Gets a read-only list of numbers.
/// </summary>
public ReadOnlyCollection<int> SomeNumbers {
get { return new ReadOnlyCollection<int>(_someNumbers); }
}
...
}
public sealed class OptionB {
/// <summary>
/// Gets a read-only list of numbers.
/// </summary>
public IList<int> SomeNumbers {
get { return new ReadOnlyCollection<int>(_someNumbers); }
}
...
}
Лучшая практика при каких обстоятельствах? Это зависит от того, какой вы хотите. –
Нет смысла указывать программисту-клиенту, что метод Add() будет работать. –
@BartoszKP Так как 'IList' предоставляет произвольный доступ и 'IEnumerable ' does not. –