Uno dei motivi per farlo è quello di aiutare con il completamento automatico. Ad esempio, le app di Windows Form hanno sofferto di un'inconsistente API di .NET Framework in cui non si sarebbe mai saputo se è necessario includere "è" o meno. Ad esempio, per verificare se una casella di controllo è selezionata, dovresti scrivere this.checkbox.Checked . In WPF, questo è stato modificato, e ora devi usare this.checkbox.IsChecked che è più facile da ricordare.
Detto questo, non vedo come AreOrdersClosed sarebbe migliore di OrdersAreClosed . Una possibile spiegazione potrebbe essere lo stesso completamento automatico: è più semplice trovare proprietà e campi booleani.
Ma questo può essere criticato:
- Se iniziamo a farlo, perché non usare anche la notazione ungherese? Poiché la notazione ungherese non deve essere utilizzata nella maggior parte delle lingue utilizzate oggi, non c'è motivo di usarla solo per i booleani.
- Le variabili booleane possono iniziare con
is , are o can . Tre prefissi per lo stesso tipo sono troppi se l'unico motivo è un migliore completamento automatico. Se vogliamo essere coerenti, AreOrdersClosed deve essere IsOrdersClosed e CanResumeDownloads deve essere IsResumeDownloadsPossible , che è brutto.
Probabilmente le persone iniziano con le proprietà grammaticali formate come Is + <Adjective> , e quando si tratta dei rari casi di <Noun> + Is + <Adjective> , la mettono solo come Is + <Noun> + <Adjective> per avere un'API più uniforme.
Ora, ci sono alcuni casi in cui "è" può essere trovato tra due parole in un nome di una variabile, e non riesco a ricordare alcun caso valido da .NET Framework. In realtà, guardando i tuoi esempi, mi sento come se ci fosse un refactoring da fare:
-
IsUserAdmin può essere IsAdmin , come suggerito dai commenti,
-
AreOrdersClosed può anche essere rinominato in AreClosed o qualcos'altro a seconda del contesto. Ad esempio, se questo è un valore che indica se qualcuno non può aggiungere nuovi prodotti al carrello, preferirei creare una proprietà IsClosed o IsFinished a Cart o Order .