データクラスで private メンバーを呼び出せる場合もある。ということを知りました

具体的には以下の場合なんですけど、Person クラス定義の際に _Name メンバーを private で宣言しています。Program クラス内で Person クラスを使う場合、Person クラスをインスタンス生成した後で、_Name メンバーは private なので見えません。

が、Person クラス内で Person クラスをインスタンス生成して使う場合は、_Name メンバーが見えるし扱えます。へー。

class Program
{
    static void Main(string[] args)
    {
        var dummy = new Person();
        dummy._Age = 12;             // "アクセスできない保護レベルになっています" のコンパイルエラー
    }
}
class Person
{
    private int _Age;
    private string _Name;

    public int GetAge()
    {
        var dummy = new Person();
        dummy._Age = 12;             // public フィールドorプロパティメンバーみたいに扱える
        return dummy._Age;
    }
}

メソッド内で直接 private メンバーを呼び出して使うことはあっても、自クラスをインスタンス生成して、それ経由でメンバーを呼び出して使うという場面にあったことがない(か、滅多にないので忘れているか)ので、ほげーって感じ。