Chciałbym móc zrobić coś takiego:Dlaczego nie mogę używać kompatybilnego rodzaj betonu przy wdrażaniu interfejs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Test
{
public interface IFoo
{
IEnumerable<int> integers { get; set; }
}
public class Bar : IFoo
{
public List<int> integers { get; set; }
}
}
Dlaczego kompilator narzeka ..?
Error 2 'Test.Bar' does not implement interface member 'Test.IFoo.integers'. 'Test.Bar.integers' cannot implement 'Test.IFoo.integers' because it does not have the matching return type of 'System.Collections.Generic.IEnumerable<int>'.
Rozumiem, że interfejs mówi IEnumerable i klasa korzysta z listy, ale Lista jest IEnumerable .....
co mogę zrobić? Nie chcę określać IEnumerable w klasie, chcę użyć typu betonu, który implementuje IEnumerable, jak List ...
„Chcę wykorzystać konkretny typ, który implementuje IEnumerable , jak List ... "- dlaczego? – jcollum