編譯器錯誤 CS0703
更新:2007 年 11 月
錯誤訊息
不一致的存取範圍︰條件約束型別 'identifier' 存取範圍低於 'identifier'
條件約束 (Constraint) 不能強制泛型參數的存取範圍低於泛用類別本身。在下列範例中,雖然泛型類別 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
{
}