C# 是否可以不在公共字段块中的字段前每次写入“public”?

C# 是否可以不在公共字段块中的字段前每次写入“public”?,c#,field,access-modifiers,C#,Field,Access Modifiers,我有一个有很多领域的班级,其中大约一半是公开的。现在看起来是这样的: public int someint1, someint2, someint3; public string str1, str2; public bool[] boolArray; public List<string> listOfStrings; public int-someint1、someint2、someint3; 公共字符串str1、str2; 公共场所;公共场所; 公开名单; ……等等。之后还

我有一个有很多领域的班级,其中大约一半是公开的。现在看起来是这样的:

public int someint1, someint2, someint3;
public string str1, str2;
public bool[] boolArray;
public List<string> listOfStrings;
public int-someint1、someint2、someint3;
公共字符串str1、str2;
公共场所;公共场所;
公开名单;
……等等。之后还有一些私人领域


是否可以为所有这些公共字段只编写一次
public

不,在
C#
中,您必须为每个字段声明其访问方式。
一般来说,默认情况下
C#
倾向于限制访问,因此即使不写任何东西,成员最终也会像
private
成员一样。

没有,如果不声明访问修饰符(private、protected、internal、public),您应该考虑使用属性而不是公共字段,这段代码将是私有的(所以是最受保护的)。
否则,你必须自己去做,所以键入你需要的那一个

不,你不能那样做。但是,您可以使用标准getter/setter定义一个自定义对象,该对象上有所需的字段,然后您可以将该部分简化为类似于
publiccustomobj状态的内容字段不应该是公共的(可能是只读字段除外)。这是一条简单的规则,除非有充分的理由,否则不要偏离它。@KonradRudolph为什么,使用公共字段有什么不好?@user1306322-答案是:@user1306322检查并复制它的血淋淋的细节。然后,作为下一步,也要清除属性。他们还公开揭露国家。