static void Main(string[] args) { Console.WriteLine("Same Assembly Base Class"); Console.WriteLine("////////////////////////////////////////"); SameAssemblyBaseClass sameAssemblyBaseClass = new SameAssemblyBaseClass(); sameAssemblyBaseClass.test(); Console.WriteLine(); Console.WriteLine(); Console.WriteLine("Same Assembly Derived Class"); Console.WriteLine("////////////////////////////////////////"); SameAssemblyDerivedClass sameAssemblyDerivedClass = new SameAssemblyDerivedClass(); sameAssemblyDerivedClass.test(); Console.WriteLine(); Console.WriteLine(); Console.WriteLine("Same Assembly Different Class"); Console.WriteLine("////////////////////////////////////////"); SameAssemblyDifferentClass sameAssemblyDifferentClass = new SameAssemblyDifferentClass(); sameAssemblyDifferentClass.ToString(); Console.ReadLine(); }
public SameAssemblyDifferentClass() { SameAssemblyBaseClass p = new SameAssemblyBaseClass(); // OK Console.WriteLine(p.publicVariable); // OK Console.WriteLine(p.internalVariable); // NOT OK -- Console.WriteLine(privateVariable); Console.WriteLine("ERROR: The name 'privateVariable' does not exist in the current context"); // NOT OK -- Console.WriteLine(p.protectedVariable); Console.WriteLine("ERROR: 'SameAssemblyBaseClass.protectedVariable' is inaccessible due to its protection level"); // OK Console.WriteLine(p.protectedInternalVariable); }