我想知道是否可以在where子句中引入条件。例如,如果我有两个泛型:
public static Y Convert<T, Y>(T itemToConvert)
where T : IDataTypeConverter, new()
where Y : IDataTypeConverter2, new()
{
}
public static Y Convert2<T, Y>(T itemToConvert)
where T : IDataTypeConverter2, new()
where Y : IDataTypeConverter, new()
{
}
如何将它们加入一个?
谢谢!
答案 0 :(得分:2)
使两个数据类型转换器都从同一接口继承。然后在where子句中使用该接口。
答案 1 :(得分:2)
我想你想要的是......
public interface IDataTypeConverterBase
{}
public interface IDataTypeConverter : IDataTypeConverterBase
{}
public interface IDataTypeConverter2 : IDataTypeConverterBase
{}
public static Y Convert<T, Y>(T itemToConvert)
where T : IDataTypeConverterBase, new()
where Y : IDataTypeConverterBase, new()
{
}
答案 2 :(得分:0)
不,每个类型参数只能有一个 where 子句。 20.7 Constraints