次のモデルがあるとします。
public interface IProduct
{
IEnumerable<Ingredient> Ingredients { get; set; }
}
public class Product : IProduct
{
public IEnumerable<Ingredient> Ingredients { get; set; }
}
public class Ingredient
{
}
Ingredients
しかし、私はのList<Ingredient>
代わりになりたいですIEnumerable<Ingredient>
インターフェイスをモデル化して受け入れる方法はありIEnumerable<T>
ますList<T>
か?
以下を試しました。しかしもちろん、構文はこれをサポートしておらずTEnumerable<Ingredient>
、ジェネリック パラメーターとは見なされません。
public interface IProduct<TEnumerable<Ingredient>>
where TEnumerable<Ingredient> : IEnumerable<Ingredient>
{
TEnumerable<Ingredient> Ingredients { get; set; }
}
public class Product : IProduct
{
public List<Ingredient> Ingredients { get; set; }
}
public class Ingredient
{
}
これはあまり実用的ではないことはわかっていますが、好奇心を念頭に置いてこれを見ているだけです。