ネステッドクラス

C#のネステッドクラスはJavaのstaticなメンバクラスと同じようなもので、C#には非staticなメンバクラスは存在しない*1
また、クラスだけじゃなくてインターフェイスや構造体、列挙体もネストさせることができる。

class Outer
{
    class NestedClass {}
    interface NestedInterface {}
    struct NestedStruct {}
    enum NestedEnum {}
    
    // Javaでfinalかつコンストラクタがprivateなstaticなメンバクラス
    static class StaticNestedClass {}
}

*1:Javaでも明示的にthis渡せば別に要らないと思う。混乱の元だし