(questionn специально написано с ошибкой: stackoverflow не разрешает слово "вопрос" в заголовке)
Рассмотрим свойство SomethingHasChanged
Это можно прочитать как выражение, SomethingHasChanged! , или вопрос, SomethingHasChanged?
Каковы соглашения (С#) для именования логических? Как заявления или как вопросы?
Задний план
Весь код клиента, на который я работаю, написан на голландском языке. На голландском языке существует небольшая разница между этими двумя формами, которые на английском языке не существуют. Поэтому нам нужно принять решение между двумя формами. Пример: ErIsIetsGewijzigd! против IsErIetsGewijzigd?
Логическая переменная или свойство является результатом выражения, поэтому это не вопрос, а утверждение.
Если вместо этого вы задаете вопрос, для которого требуется операция, чтобы ответить на него, это должен быть метод и может быть назван таковым.
Многие свойства boolean начинаются с Is
или Has
, например:
this.IsRed = this (object) is red
this.HasChildren = this (object) has children
Ваше имя действительно не подходит для этого соглашения:
this.SomethingHasChanged = this (object) has something that has changed.
Чтобы соответствовать этому соглашению, я бы переименовал ваше свойство IsDirty
или подобное.
Это зависит от того, хотите ли вы сообщить свое состояние чтения или определить его по запросу. Свойство bool HasChanged {get; set; }
bool HasChanged {get; set; }
bool HasChanged {get; set; }
можно вызвать дважды, и это должно привести к тому же сохраненному значению. Однако метод bool HasChanged()
сообщает, что он будет определять его для вас по требованию.
Наконец, поскольку я тоже голландский, ErIsIetsGewijzigd
звучит как команда, поэтому, читая его, он должен установить свойство, то есть ErIsIetsGewijzigd(true);
,
SomethingHasChanged
следует читать как утверждение. Если я хочу задать вопрос, я хотел бы написать:HasSomethingChanged()
.