C#中的访问修饰符

时间:2015-02-11 02:39:29

标签: c# private access-modifiers

我在教自己C#,我遇到了一些模棱两可的情况。

我尝试做的是为某些数据创建一个容器类,相当直接,但我试图尊重封装,并且只能通过setter和getter访问数据。所以我正在阅读有关访问修饰符的内容,根据This MSDN article ,默认访问级别为内部。我来自Java-land所以我不熟悉内部,但是从该页面上的资源来看,内部看起来比我想要的更宽松。所以我想将事情设置为私人。

我的混淆来自代码示例here。看起来好像我做了

class whatever {
    private int thing;
    string ambiguous; 
}

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

它真的有效吗?或者第二个例子写错了?

1 个答案:

答案 0 :(得分:8)

字段ambiguous根本不含糊。 C#规范声明,如果一个类成员缺少访问修饰符,则默认为private

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

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

相当于

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