Шаблон Резарпера для сравнения строк с учетом регистра - PullRequest
4 голосов
/ 26 марта 2011

Я пытаюсь добавить шаблон Resharper в каталог шаблонов для сравнения строк. В конечном счете, я хотел бы предупредить меня, когда я сталкиваюсь с кодом, подобным string1 == string2, и предложить заменить его на string1.Equals(string2, StringComparison.OrdinalIgnoreCase). Отсюда я могу изменить его на соответствующий случай, но начальный шаг принуждения к использованию Equals с опциями сравнения делает цель сравнения более очевидной.

Я могу сделать это, создав шаблон поиска:

$string1$ == $string2$

И создание шаблона замены:

$string1$.Equals($string2$, StringComparison.OrdinalIgnoreCase)

Где $ string1 $ и $ string2 $ являются «выражениями» типа «String (или производный тип)». Это хорошее начало, потому что даже если бы я хотел, чтобы это был поиск с учетом регистра, я вижу опции и изменю их.

Проблема, с которой я столкнулся, заключается в том, что теперь она также предупреждает меня о string == null. Есть ли способ, чтобы исключить null из поиска?

1 Ответ

0 голосов
/ 06 мая 2011

Насколько я могу судить из документации , в этих выражениях невозможно установить условия типа "не равен нулю".

Если вы чувствуете себя смелым, вы можете сначала заменить

$string$ == null

с

String.IsNullOrEmpty($string$)

, где это необходимо.Но это не означает абсолютно то же самое.

...