Ich bin relativ neu in C # und jedes Mal, wenn ich anfange, an einem C # -Projekt zu arbeiten (ich habe nur an fast ausgereiften Projekten in C # gearbeitet), frage ich mich, warum es keine inneren Klassen gibt.
Vielleicht verstehe ich ihr Ziel nicht. Für mich sehen innere Klassen - zumindest private innere Klassen - sehr nach "inneren Prozeduren" in Pascal / Modula-2 / Ada aus: Sie ermöglichen es, eine Hauptklasse in kleinere Teile aufzuteilen, um das Verständnis zu erleichtern.
Beispiel: Hier ist, was die meiste Zeit zu sehen ist:
public class ClassA
{
public MethodA()
{
<some code>
myObjectClassB.DoSomething(); // ClassB is only used by ClassA
<some code>
}
}
public class ClassB
{
public DoSomething()
{
}
}
Da ClassB (zumindest für eine Weile) nur von ClassA verwendet wird, gehe ich davon aus, dass dieser Code besser wie folgt ausgedrückt werden sollte:
public class ClassA
{
public MethodA()
{
<some code>
myObjectClassB.DoSomething(); // Class B is only usable by ClassA
<some code>
}
private class ClassB
{
public DoSomething()
{
}
}
}
Ich würde mich freuen, von Ihnen zu diesem Thema zu hören - Habe ich recht?