使类中所有成员的访问修饰符为一

本文关键字:访问 成员 | 更新日期: 2023-09-27 17:58:43

已经定义了这样的类:

class Data
{
    internal string f_source;
    internal string f_output;
    internal string password;
}

正如您所看到的,我正在为其中的每个成员显式地定义访问修饰符。

是否存在同时为类中的所有成员定义默认访问修饰符的方法?

也许,有某种特质使这样的梦想成真。。。不知道。。。

我尝试在类声明之前使用访问修饰符:

internal class Data
{
    string f_source;
    string f_output;
    string password;
}

但是,没有成功!

有什么建议吗:"如何解决这样的问题?"

使类中所有成员的访问修饰符为一

根据设计,您所要求的在C#中是不可能的。

C#的规范指定了如果没有给定访问修饰符,则使用哪个访问修饰符。默认值是合法的最受限制的访问修饰符。这是一个直接在命名空间中的类型(即不是嵌套类型)是内部的,而任何成员都是私有的,除非另有规定。

我确信,这是一个设计决策,部分基于C++中访问模块的工作经验。一系列错误可能来自于文件中声明privatepublic等的特定部分。必须声明它(或者知道如果不指定,它会尽可能受到限制)会更有表现力。将限制作为默认值与尽可能多地保留内部(*)实现细节以及只公开您真正需要公开的非常吻合

(*)不是修饰符

您的第二个定义类型使您的类只能在同一个程序集中访问该类。无法将所有类成员设置为所有成员的内部成员。

切克这个:msdn内部定义&示例

祝你好运!