c# - C# 中的访问修饰符

标签 c# private access-modifiers

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

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

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

class whatever {
    private int thing;
    string ambiguous; 
}

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

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

最佳答案

ambiguous 字段完全没有歧义。 C# 规范指出,如果类成员 没有访问修饰符,它默认为private

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

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

相当于

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

关于c# - C# 中的访问修饰符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28445670/

相关文章:

C#:固定语句对空字符串的行为是什么?

java - Java 中 'private static final' 和 'public static final' 类变量的最接近的 Ruby 表示?

java - 为什么在编译时会出现重复的修饰符错误?

c# - 为什么不能将 "Using static"功能与私有(private)枚举一起使用?还有其他选择吗?

C# 带有空检查的重复代码

c# - Hangfire 安装/启动

c# - 如何让 NMecab 输出罗马字?

Java:使用类型参数访问私有(private)构造函数

Java 私有(private)方法包装

java - 无法从组件访问 processMouseMotionEvent