-6
私は次のコードがエラーなしでコンパイルされていることに気づいた:Bar
以来静的なクラスメソッドでプライベート非静的クラスプロパティにアクセスするのはなぜですか?
public class Foo
{
private string identifier;
public Foo() { }
private static void Bar(Foo foo)
{
Console.WriteLine($"{foo.identifier}");
}
}
が静的である、これはidentifier
が表示されていないという例外をスローべきではないのですか?
なぜでしょうか? 'identifier'はメソッドに渡されたインスタンスに属します。そのインスタンスの通常のインスタンスメンバです。 – HimBromBeere
アクセス修飾子は*オブジェクト*ではなくクラス*を制御します。 –
コードが渡されたパラメータにアクセスするため、私はあなたの混乱をここに見当たりません。 – DavidG