Is vs. Can
De acordo com as recomendações da convenção de nomenclatura da Microsoft , "Is" e "Can" estão OK (e também "Has") como prefixo para um booleano.
Em inglês simples, "Is" seria usado para identificar algo sobre o tipo em si, não o que ele pode fazer. Por exemplo, IsFixed
, IsDerivedFrom
, IsNullable
podem ser encontrados em tipos CLR e métodos. Em todos esses casos, "Is" é seguido por um adjetivo .
Enquanto isso, "pode" indica mais claramente a capacidade de, por exemplo CanEdit
, CanRead
, CanSeek
. Em cada um desses casos, can é seguido por um verbo .
Como "Suporte" é um verbo, acho que no seu caso CanSupportContentType
é melhor.
Alternativa mais curta
Por outro lado, as convenções dizem que o prefixo é opcional. Além do mais, é meio cafona incluir o tipo de argumento no nome do método, pois um desenvolvedor pode ver o tipo de argumento no intellisense. Assim, você pode nomear seu método Supports
e defini-lo assim:
public bool Supports(System.Net.Mime.ContentType contentType)
... que é mais curto e ainda comunica claramente o objetivo. Você chamaria assim:
ContentType contentType = new ContentType("text/plain");
var someClass = new MediatorsClass();
bool ok = someClass.Supports(contentType);
Ou, como compromisso, talvez seja melhor:
public bool CanSupport(System.Net.Mime.ContentType contentType)