Есть против Can
В соответствии с рекомендациями Microsoft по соглашению об именах , «Is» и «Can» в порядке (как и «Has») в качестве префикса для логического значения.
На простом английском языке «Is» будет использоваться для идентификации чего-либо о самом типе, а не о том, что он может делать. Например, IsFixed
, IsDerivedFrom
, IsNullable
все это можно найти в типах CLR и методах. Во всех этих случаях «Is» сопровождается прилагательным .
В то же время, «может» более четко указывает на возможность, например CanEdit
, CanRead
, CanSeek
. В каждом из этих случаев за глаголом следует глагол .
Поскольку «Поддержка» - это глагол, я думаю, что в вашем случае CanSupportContentType
это лучше.
Более короткая альтернатива
С другой стороны, соглашения говорят, что префикс является необязательным. Более того, довольно просто включить тип аргумента в имя метода, поскольку разработчик может увидеть тип аргумента в intellisense. Таким образом, вы можете просто назвать свой метод Supports
и определить его так:
public bool Supports(System.Net.Mime.ContentType contentType)
... который короче и все же четко сообщает цель. Вы бы назвали это так:
ContentType contentType = new ContentType("text/plain");
var someClass = new MediatorsClass();
bool ok = someClass.Supports(contentType);
Или как компромисс, может быть, это лучше:
public bool CanSupport(System.Net.Mime.ContentType contentType)