Когда использовать IList и когда использовать List

Рекомендации Microsoft, проверенные visual-c# FxCop, не рекомендуют использовать c-sharp List в общедоступных c# API — отдайте предпочтение c#.net IList.

Между прочим, теперь c-sharp я почти всегда объявляю одномерные c#.net массивы как IList, что c#.net означает, что я могу последовательно .net-framework использовать свойство IList.Count, а c# не Array.Length. Например:

public interface IMyApi
{
    IList GetReadOnlyValues();
}

public class MyApiImplementation : IMyApi
{
    public IList GetReadOnlyValues()
    {
        List myList = new List();
        ... populate list
        return myList.AsReadOnly();
    }
}
public class MyMockApiImplementationForUnitTests : IMyApi
{
    public IList GetReadOnlyValues()
    {
        IList testValues = new int[] { 1, 2, 3 };
        return testValues;
    }
}

c#

.net

2022-11-10T11:31:20+00:00