C# 中的访问修饰符

Access modifiers in C#

我正在自学 C#,但我 运行 遇到了一些模棱两可的情况。

我想做的是为一些数据创建一个容器 class,相当简单,但我试图尊重封装并仅通过 setter 和 getter 访问数据。所以我正在阅读有关访问修饰符的内容,并且根据 This MSDN article 默认访问级别是内部。我来自 Java-land,所以我不熟悉内部,但是从该页面上的资源来看,内部似乎比我想要的更宽松。所以我想把东西设为私有。

我的困惑来自代码示例 here。看起来如果我这样做

class whatever {
    private int thing;
    string ambiguous; 
}

模糊变量将是私有的,而不是内部的。

真的是这样吗?还是第二个例子写错了?

字段ambiguous一点都没有歧义。 C# 规范指出,在 a class 成员 上没有访问修饰符的情况下,它默认为 private.

顶级类型的默认访问级别是内部的。

class Foo {
    int bar;
    class Nested {
        int baz;
    }
}

等同于

internal class Foo {
    private int bar;
    private class Nested {
        private int baz;
    }
}