Ответ 1
Я думаю, что экспликация, заявляющая о себе, помогает в удобочитаемости. Это не позволит программисту интерпретировать свою видимость по-разному.
Учитывая, что эти два примера эквивалентны, как вы думаете, предпочтительнее?
Без явного модификатора
public class MyClass
{
string name = "james";
public string Name {
get { return name; }
set { name = value; }
}
void SomeMethod() { ... }
}
С явным модификатором
public class MyClass
{
private string name = "james";
public string Name {
get { return name; }
set { name = value; }
}
private void SomeMethod() { ... }
}
Я всегда использовал последнее, но недавно я начал использовать прежний стиль. Частный избыточен как модификатор модификатора по умолчанию, поэтому не имеет смысла его исключать?
Я думаю, что экспликация, заявляющая о себе, помогает в удобочитаемости. Это не позволит программисту интерпретировать свою видимость по-разному.
Похоже, что мы единственные, но лично я поддерживаю, чтобы удалить частную кампанию.
Меня беспокоит то, что публичные и частные так похожи, длина 6-7 символов, синяя, начиная с "p", поэтому гораздо сложнее указать публичный метод между 10 явными частными, чем между 10, у которых нет атрибута доступа.
Кроме того, это преимущество, так как ленивые люди в вашей команде, как правило, сохраняют запись модификатора и делают метод приватным, что на самом деле хорошо. В противном случае вы получите все, что угодно.
Я обычно предпочитаю явно неявное, но это более важно в языковых угловых случаях (хитроумных читах), которые широко распространены. Здесь я считаю, что долговечная ремонтопригодность важнее.
Кроме того, мне обычно нравится, когда код прост и понятен математическим способом, когда код явный, чтобы сохранить будущее незнание кодера. Это путь VB, а не С#...
Отмечая это как личное, он ясно указывает, что он преднамерен, а не "я на самом деле не думал об этом, поэтому я не знаю, было бы лучше, чем что-то еще"; поэтому мне нравится делать это явным. Однако я не стал бы религиозным.
Также - это предотвращает необходимость запоминать правила... члены являются закрытыми по умолчанию, (внешние) типы являются внутренними по умолчанию; Вложенные типы являются закрытыми по умолчанию...
Прояснить... сделать его явным; -p
Я всегда опускаю это по двум причинам: чтобы уменьшить визуальный беспорядок, и делать правильные вещи по умолчанию.
В С# все по умолчанию имеет наименьшую возможную видимость. Член класса (поле, метод, свойство) по умолчанию является закрытым. Класс по умолчанию является внутренним. Вложенный класс по умолчанию является закрытым.
Таким образом, если вы пропустите свою видимость, за исключением тех случаев, когда вам это нужно, вы будете автоматически использовать наименьшую возможную видимость, что в любом случае является правильным способом сделать что-то.
Если вам нужно что-то более заметное, добавьте модификатор. Это позволяет легко видеть элементы, которые отличаются от видимости по умолчанию.
(К сожалению, это правило справедливо только для С#. В VB.NET и F # значения по умолчанию совершенно разные и в большинстве случаев определенно не "наименьшая видимость возможна".)
Я работаю полный рабочий день на С# около 7 лет, и пока я не прочитал эту тему, я не знал, что такое модификатор доступа по умолчанию. Я знал, что он существует, но я никогда не использовал его.
Мне нравится явное объявление моего намерения при кодировании. И то, и другое, потому что объявления для меня видны, когда я возвращаюсь и смотрю на него, а потому, что на самом деле думая и набрав слово "private", когда я пишу метод, заставляет меня думать немного больше о том, что я имею в виду сделать.
Лично я предпочитаю частный модификатор - мне нравится объяснение. Для полей также подчеркивается, что это переменная-член в отличие от функциональной переменной (единственное отличие в противном случае - это местоположение - это нормально, если люди могут отступать должным образом, но могут сбивать с толку иначе).
Мне нравится быть супер-явным обычно. Я поеду для указания "private" всегда. Однако есть и другая причина: программисты, выходящие из языков программирования, где видимость по умолчанию НЕ закрыта, но общедоступна, например PHP.
Я всегда предпочитаю быть явным, даже если он избыточен. Это обеспечивает встроенные комментарии к коду и может быть полезным для следующего парня, особенно если он нооб.: -)
Всегда используйте явную форму. Если по какой-либо причине основное предположение изменится, код с явным обозначением доступа не сломается, тогда как неявная коннотация моя легко сломается.
Кроме того, когда вы говорите о различных типах структур, у них могут быть разные возможности по умолчанию. Без явных модификаторов ownus читает читателю, какая структура имеет значение по умолчанию. Например. в С#, по умолчанию для структурных полей public
, по умолчанию для полей класса private
, а определения классов по умолчанию - internal
.
Я все время говорю явное. Если ничто иное не демонстрирует ваше намерение более четко. Если я хочу, чтобы что-то было частным, я скажу так. Явно набрав модификатор, я думаю об этом, а не просто оставляя вещи частными, потому что он быстрее. Что длинный список участников лучше подходит:)
Я всегда указываю видимость явно. Я предпочитаю не давать компилятору догадываться о моих намерениях.
вы правы, но поскольку вы хотите, чтобы ваш код был понятным для всех, кого я думаю, вам следует включить, вы никогда не знаете, когда, если кто-то не знает этого
Мое понимание всегда заключалось в том, что члены имеют "внутреннюю" доступность, если не указано иное. Если это правда, потребуется модификатор "private", чтобы гарантировать, что эти члены фактически являются частными.
Независимо от того, насколько я прав по поводу вышеизложенного или нет, оставляя модификатор на месте, повысит читаемость кода, если другой разработчик позже изменит этот класс и будет интересоваться доступностью. Надеюсь, это поможет!
Сначала я спрошу, есть ли предыдущее соглашение/стандарт кода о том, что используется командой. Если он есть, вы должны следовать ему.
Если вам нужно определить соглашение, я буду настаивать на явном способе.
Мои причины?;