6

ObjectA があり、プライベート メソッドGetPrice()があり、同じ型の「親」フィールドもあるGetPrice()場合、子インスタンス内から親インスタンスを呼び出すことができるのはなぜですか?

例:

private decimal GetPrice()
{
    ObjectA parent = Parent;

    if(parent != null)
    {
        return parent.GetPrice(); // Why is this OK?
    }

    return 0;
}
4

3 に答える 3

13

private は「他のタイプにアクセスできない」ことを意味するため、「他のインスタンスにアクセスできない」という意味ではありません。

于 2012-11-02T13:15:49.870 に答える
6

privateスコープはクラスに制限されているため、 C#仕様で定義されているインスタンスではありません。

1.6.2アクセシビリティクラスの各メンバーには、メンバーにアクセスできるプログラムテキストの領域を制御するアクセシビリティが関連付けられています。アクセシビリティには5つの可能な形式があります。これらは次の表にまとめられています。

アクセシビリティの意味   

パブリックアクセスは制限されていません   
このクラスまたはこのクラスから派生したクラスに限定された保護されたアクセス  
このプログラムに限定された内部アクセス   
このプログラムまたはこのクラスから派生したクラスに限定された保護された内部アクセス    
このクラスに限定されたプライベートアクセス
于 2012-11-02T13:16:20.153 に答える
1

アクセス修飾子は、そのクラスのインスタンスではなく、クラス/タイプの実装に関連しています

于 2012-11-02T13:19:05.703 に答える