2012-09-15 2 views
3

У меня есть класс со многими полями, и около половины из них являются общедоступными. Сейчас это выглядит так:Можно ли писать `public` каждый раз перед полем в блоке открытых полей?

public int someint1, someint2, someint3; 
public string str1, str2; 
public bool[] boolArray; 
public List<string> listOfStrings; 

... и так далее. И после этого есть несколько частных полей.

Можно ли написать public только один раз для всех этих общественных полей?

+0

Нет, вы не можете этого сделать. Тем не менее, вы можете определить пользовательский объект с желаемыми полями со стандартными установщиками/сеттерами, а затем вы можете уменьшить раздел до состояния «public CustomObj»; – aroth

+0

Поля никогда не должны быть общедоступными (кроме полей только для чтения). Это простое правило, не отклоняйтесь от него, если нет веской причины. –

+0

@ KonradRudolph почему, что плохого в использовании публичных полей? – user1306322

ответ

3

Нет, нет способа сделать это в C#, вы должны объявить для каждый поле своего доступа. Обычно C# стремится к ограничению доступа по умолчанию, так что даже если ничего не писать, участники получат private.

0

Нет там нет, и вы должны думать об использовании свойств, а не в каких областях - Why won't anyone accept public fields in C#?

+0

И затем, как следующий шаг, избавиться от свойств тоже. Они также обнародуют государство публично. [Скажите, не спрашивайте] (http://c2.com/cgi/wiki?TellDontAsk) –

0

если вы не объявляют модификатор доступа (частная, защищенная, внутренняя, общественность), код будет принимать не будет частный (так наиболее защищенный). Иначе, вы должны сделать это самим, поэтому введите тот, который вам нужен!