c#通用条件where子句

本文关键字:where 子句 条件 | 更新日期: 2023-09-27 18:12:50

我想知道是否有可能在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()
    {
    }

如何将它们合并为一个?

谢谢!

c#通用条件where子句

使两个数据类型转换器从同一接口继承。然后在where子句中使用该接口。

我想你想要的是这个…

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()
{
}

不可以,每个类型参数只能有一个where子句。20.7约束