编译器错误 CS0703
可访问性不一致:约束类型“identifier”的可访问性比“identifier”低
约束不能强制泛型参数比泛型类本身的可访问性低。 在下面的示例中,虽然将泛型类 C<T> 声明为 public,但约束尝试强制 T 实现内部接口。 即使允许这样做,也只有具有内部访问权限的客户端才能为该类创建参数,因此实际上只有具有内部访问权限的客户端才能使用该类。
若要消除此错误,请确保泛型类的访问级别的限制性不低于边界内出现的任何类或接口。
下面的示例生成 CS0703:
// CS0703.cs
internal interface I {}
public class C<T> where T : I // CS0703 – I is internal; C<T> is public
{
}