Ich habe gerade bemerkt, dass der folgende Code ohne Fehler kompiliert:Warum kann ich auf private nicht statische Klasseneigenschaften in einer statischen Klassenmethode zugreifen?
public class Foo
{
private string identifier;
public Foo() { }
private static void Bar(Foo foo)
{
Console.WriteLine($"{foo.identifier}");
}
}
Da Bar
statisch ist, sollte diese eine Ausnahme nicht werfen, dass identifier
nicht sichtbar ist?
Warum sollte es? 'identifier' gehört zu der an die Methode übergebenen Instanz. Es ist ein normales Instanzmitglied dieser Instanz. – HimBromBeere
Zugriffsmodifikatoren Steuerelement * Klassen *, nicht * Objekte *. –
Da der Code auf den übergebenen Parameter zugreift, sehe ich nicht, worüber Sie hier verwirrt sind. – DavidG