C#没有预处理,我不想为需要此约束的所有接口定义"struct、IComparable、IFormattable、IConvertible“。我需要的是:
命名约束"IMyItemConstraint"用于几个泛型接口,其中-子句:
public interface IProperty2Enum<T>
: IEnumerable<T>
where T : IMyItemConstraint { } // <--- here
public interface IMyCollection2<T>
: IEnumerable<T>, INotifyCollectionChanged, INotifyPropertyChanged
where T : IMyItemConstraint { } // <--- here
public interface IMyObservableCollection2<T>
: IEnumerable<T>, INotifyCollectionChanged, INotifyPropertyChanged
where T : IMyItemConstraint { } // <--- here我试图定义一个名为"IMyItemConstraint“的名称,但我得到了错误CS####:
public interface IMyItemConstraint
: struct, IComparable, IFormattable, IConvertible { } // CS1031: Type expected
public interface IMyItemConstraint : where IMyItemConstraint
: struct, IComparable, IFormattable, IConvertible { } // CS1031: Type expected
public interface IMyItemConstraint<T> where T // This does not help:
: struct, IComparable, IFormattable, IConvertible { }是否有可能为几个接口(契约)定义泛型接口WHER-子句的命名约束?
发布于 2017-04-12 21:11:42
不幸的是,您不能继承泛型约束。您需要为每个类型参数分别定义约束。
https://stackoverflow.com/questions/43379514
复制相似问题