Лучшая практика модификатора доступа в C# по сравнению с Java

При кастинге fred к булевской переменной он скомпилирует:

  if (( bool )fred )
      (...)

я думаю это, когда Вы сравниваете bool? к bool компилятор делает бросок implicite, сделайте сравнение и затем возвратите TRUE или FALSE. Результат: выражение оценивает к bool.

, Когда Вы не сравниваете bool? к чему-то выражение оценивает к bool?, кто недопустим там.

7
задан yoozer8 15 August 2012 в 15:08
поделиться

4 ответа

Думаю, вы ответили на свой вопрос. По словам Джошуа Блоха, «практическое правило простое: сделайте каждый класс или член как можно более недоступным». Эффективная Java

6
ответ дан 6 December 2019 в 19:40
поделиться

Область видимости Java немного отличается от области видимости C # .

Об этом кратко говорится в C # С точки зрения разработчика Java То же самое, но другое: Модификаторы доступа . Этот документ немного устарел, но по-прежнему актуален.

В этом списке есть две ошибки:

  1. C # internal эквивалентен области видимости Java по умолчанию (которая является ее собственной областью).
  2. C # ' s internal protected эквивалентно Java protected .

Кроме того, в приведенном выше документе не упоминаются модификаторы доступа по умолчанию для классов, только для методов и свойств / переменных.

Для справки: область видимости по умолчанию для классов в C # является внутренней. Java - это обычная область действия по умолчанию, как описано ранее.

6
ответ дан 6 December 2019 в 19:40
поделиться

Единственное, что я делаю общедоступным, - это статические / конечные переменные, которые обычно являются константами. Все остальное является частным, и доступ осуществляется через методы getXXX () и setXXX (), когда это необходимо. Методы setXXX () также выполняют любую проверку данных. Если мне нужно сделать что-то защищенным, я это сделаю, но обычно я этого избегаю.

1
ответ дан 6 December 2019 в 19:40
поделиться

Меньше «клиент» (другой код) знает о внутреннем работы ваших классов, он принесет больше пользы ... Простое правило абстракции и фундаментальный столп ООП. Правильный ответ уже дан выше:

«Практическое правило простое: сделайте каждый класс или член как можно более недоступным». ~ Джошуа Блох

0
ответ дан 6 December 2019 в 19:40
поделиться