Рассмотрим следующие строки кода:
public interface IProduct
{
string Name { get; set; }
}
public interface IProductList
{
string Name { get; }
IProduct GetValueObject();
}
public abstract class BaseProductList<T> : IProductList where T : class, IProduct, new()
{
public abstract T GetValueObject();
public string Name { get; set; }
}
Это дает мне следующее предупреждение:
(Ошибка 1 «ConsoleApplication1.EnumTest.BaseProductList» не
реализовать интерфейсный элемент
'ConsoleApplication1.EnumTest.IProductList.GetValueObject ()'.
'ConsoleApplication1.EnumTest.BaseProductList.GetValueObject ()'
не может реализовать
ConsoleApplication1.EnumTest.IProductList.GetValueObject (), потому что
у него нет соответствующего возвращаемого типа
'ConsoleApplication1.EnumTest.IProduct. \ Cencibel \ дома $ \ k.bakker \ визуальный
студия
2010 \ Projects \ ConsoleApplication1 \ ConsoleApplication1 \ EnumTest \ Program.cs 29 23 TestApp)
Но когда я добавляю этот явный фрагмент кода, он работает:
IProduct IProductList.GetValueObject()
{
return GetValueObject();
}
Почему .Net не может понять это!?