Подтвердить что ты не робот

Имя метода, начинающееся с "Does", выглядит хорошо?

Хорошо ли начинать имя метода с "Does" (на С#)? Это выглядит немного странно для меня, поэтому я хотел бы получить ваше мнение.

Я пишу метод, который проверяет, существует ли учетная запись или нет, если подпись "bool DoesAccountExist (id)"? Есть ли лучшее имя?

Спасибо!

4b9b3361

Ответ 1

Лично я бы пошел с AccountExists (id) в этом случае, так как он будет выглядеть более естественным в блоке if

if (AccountExists(id)) { }

Ответ 2

Мы всегда используем Is для любого метода, который возвращает логическое значение, поэтому в этом случае мы будем называть метод

IsExistingAccount(id)

Ответ 3

Я обычно оставляю "Дела" и просто использую AccountExists (id).

Для меня это выглядит более естественно позже в коде, например:

if(AccountExists(id))
{
    ValidateLogin();
}

Альтернативой может быть что-то вроде:

if(!DoesAccountExist(id)) {}

кажется странным для меня. Я бы прочитал, что, как будто учетной записи не существует? Что делает меньше, чем учетная запись не существует.

Ответ 4

Я думаю, что AccountExists - ваш лучший выбор, но еще один вариант: IsExistingAccount. Для методов или свойств, возвращающих логическое значение, может быть полезно использовать соглашение об именах, где метод начинается со слова "is". Если вы используете "is", вам придется перефразировать остальную часть имени метода, чтобы это имело смысл для читателя.

Ответ 5

Идиома префикса "Is" помогает прояснить такие методы, как Array "Empty", что может означать "пустой массив" или "массив пуст?". Если использовать последовательно "IsEmpty", то очевидно, что возврат bool и по соглашению "Empty" становится понятным как действие опорожнения.
В контексте вопроса, который я согласен с @Andy Whites, второй предлагает:

if (IsExitingAccount) ...

Здесь "Is" запускает сильную автоматическую импликацию bool return, устойчивую с ее использованием else где (IsEmpty, IsNull и т.д.)

Ответ 6

Может или может быть использовано как CanCopy или IsAccountExists тоже отлично. Следуя предопределенным соглашениям, код становится более читаемым. Чтобы быть откровенным, префикс выглядит немного странным для меня.

Ответ 7

Другим вариантом является использование стандартного С# множественного числа Is, Any.

AnyAccountsExist(id)