Здесь я получил небольшой пример, который заставляет компилятор выдавать ошибку типа:
"Невозможно неявно преобразовать тип 'ProvideValueOne' в 'ValueProviderType'".
По моему мнению, этоневозможно каким-либо образом нарушать типы, так почему этот код не принят?
Просветление приветствуется.
public interface IProvideValue
{
int Value { get; }
}
public class ProvideValueOne : IProvideValue
{
public int Value
{
get { return 1; }
}
}
public class ProvideValueTwo : IProvideValue
{
public int Value
{
get { return 2; }
}
}
public class BaseEntity<ValueProviderType> where ValueProviderType : IProvideValue
{
public ValueProviderType Provider
{
get{
return new ProvideValueOne(); // doesnt´t compile
}
}
}