Quel est le meilleur nom pour une méthode qui renvoie un booléen?
IsSupportContentType
ou
CanSupportContentType
Is vs Can
Selon les recommandations de convention de dénomination Microsoft , "Is" et "Can" sont OK (et donc "Has") comme préfixe pour un booléen.
En clair, "Is" serait utilisé pour identifier quelque chose sur le type lui-même, et non pas ce qu'il peut faire. Par exemple, IsFixed
, IsDerivedFrom
, IsNullable
se trouvent tous dans les types et méthodes CLR. Dans tous ces cas, "Is" est suivi d'un adjectif .
Pendant ce temps, "peut" indique plus clairement une capacité, par exemple CanEdit
, CanRead
, CanSeek
. Dans chacun de ces cas, can est suivi d'un verbe .
Puisque "Support" est un verbe, je pense que dans votre cas, CanSupportContentType
est mieux.
Alternative plus courte
D'un autre côté, les conventions disent que le préfixe est facultatif. De plus, il est un peu ringard d'inclure le type d'argument dans le nom de la méthode, car un développeur peut voir le type de l'argument dans intellisense. Donc vous pourriez nommez simplement votre méthode Supports
et définissez-la comme ceci:
public bool Supports(System.Net.Mime.ContentType contentType)
... qui est plus court et communique clairement le but. Vous l'appeleriez comme ceci:
ContentType contentType = new ContentType("text/plain");
var someClass = new MediatorsClass();
bool ok = someClass.Supports(contentType);
Ou comme compromis, c'est peut-être le meilleur:
public bool CanSupport(System.Net.Mime.ContentType contentType)
Il convient de mentionner que le préfixe " devrait" peut également être utilisé. Selon la directive d'Apple , pas seulement " peut" et " devrait", les verbes modaux en général peuvent être utilisés pour nommer des fonctions ce retour booléen. Je ne vois pas beaucoup d'utilisation de " sera" mais " devrait" est bien pour les crochets qui demandent des conseils, comme on le voit dans reactjs:
shouldComponentUpdate: (newProps: any) => boolean