なぜC#のメンバー名は、囲む型名と同じにできないのか
C#においては、メンバー名が周囲の型名と一致しないようにして、あいまいさや混乱を避ける必要がある。メンバー名が周囲の型名と一致すると、コンパイラはそれが型に対する参照なのか、メンバータイプなのかを特定できなくなる。たとえば、クラス名がプロパティ名やメソッド名と一致する場合、コンパイラはクラス名が型名なのかメンバー名なのかを区別できなくなる。
また、 これは良好なコーディング・プラクティスに沿っているためです。メンバー名は、その機能を明確に、具体的かつ直観的に表す名前を、型名は、その用途を明確かつ描写的に表す名前を付ける必要があります。メンバー名と囲む型名が同じになることを避けることで、コードの保守性と可読性を高めます。