// using System; [assembly:CLSCompliant(true)] public class C1 { protected class N { } protected void M1(C1.N n) { } // Not CLS-compliant - C1.N not // accessible from within C1 in all // languages protected void M2(C1.N n) { } // CLS-compliant – C1.N accessible // inside C1 } public class C2 : C1 { protected void M3(C1.N n) { } // Not CLS-compliant – C1.N is not // accessible in C2 (extends C1) protected void M4(C1.N n) { } // CLS-compliant, C1.N is // accessible in C2 (extends C1) } // Attempting to compile the example displays output like the following: // Generics4.cs(9,22): warning CS3001: Argument type 'C1.N' is not CLS-compliant // Generics4.cs(18,22): warning CS3001: Argument type 'C1.N' is not CLS-compliant // public class Example { public static void Main() { } }