Compilerfehler CS0703

Inkonsistenter Zugriff: Einschränkungstyp "Bezeichner" ist weniger zugreifbar als "Bezeichner"

Eine Einschränkung zwingt den generischen Parameter möglicherweise nicht dazu, weniger zugreifbar als die generische Klasse selbst zu sein. Im folgenden Beispiel versucht die Einschränkung T zu zwingen, eine interne Schnittstelle zu implementieren, während die Klasse C<T> als öffentlich deklariert wird. Selbst wenn dies erlaubt wäre, könnten nur Clients mit internem Zugriff den Parameter für die Klasse erstellen. Dies bedeutet, dass die Klasse nur von Clients verwendet werden könnte, die internen Zugriff haben.

Um diesen Fehler zu beheben, achten Sie darauf, dass die Zugriffsebene der generischen Klasse nicht weniger einschränkend als eine andere Klasse oder Schnittstelle ist, die innerhalb der Grenzen vorhanden sind.

Im folgenden Beispiel wird CS0703 generiert:

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