InnerClass - mehdimo/janett GitHub Wiki
In Java, you can use private members of inner class in enclosing class. In C#, their accessibility should be at least internal.
Also in Java, non-static members of enclosing class, can be used in inner classes, whereas in C#, an instance of enclosing class is required. We pass enclosing instance through inner class constructor.
[Java]
public class A
{
public void method1()
{
InnerA ia = new InnerA();
ia.methodInnerA();
}
public void method2()
{
}
public class InnerA
{
private void methodInnerA()
{
method2();
}
}
}
[C#]
public class A
{
public void method1()
{
InnerA ia = new InnerA();
ia.methodInnerA();
}
public void method2()
{
}
public class InnerA
{
A A;
public InnerA(A enclosing)
{
this.A = enclosing;
}
internal void methodInnerA()
{
A.method2();
}
}
}