编译器错误 CS0703

可访问性不一致:约束类型“identifier”的可访问性比“identifier”低。

一个约束不能强制泛型参数比泛型类本身的可访问性低。 在下面的示例中,虽然泛型类 CC<T>被声明为 public,但约束尝试强制 T 实现内部接口。 即使允许这样做,也只有具有内部访问的客户端才能为该类创建参数,因此实际上只有具有内部访问的客户端才能使用该类。

为消除此错误,请确保泛型类的访问级别的限制性不低于界限中出现的任何类或接口。

下面的示例生成 CS0703:

// CS0703.cs
internal interface I {}
public class C<T> where T : I  // CS0703 – I is internal; C<T> is public
{
}