Сравните строку с null - почему Решарпер думает, что это всегда ложь?


У меня есть этот код в моем пользовательском MembershipProvider:

public override void Initialize(string name, System.Collections.Specialized.NameValueCollection config)
{
    if (config == null)
        throw new ArgumentNullException("config");

    if (name == null)
        name = "MyCustomMembershipProvider";
    ...
}

Решарпер отмечает второе утверждение if и говорит мне, что оно всегда будет оцениваться как false.

сообщение resharper

Но почему это всегда оценивается как ложное? Я мог бы легко передать методу null в качестве параметра.

Это ошибка или Решарпер прямо здесь?

PS 1: я использую Resharper 6.1
PS 2: я знаю, используя строку.IsNullOrEmpty() был бы путь, чтобы пойти здесь в любом случае. Мне просто любопытно.

1 12

1 ответ:

Вероятно, аргумент name помечен как [NotNull]. Resharper корабли с метаданными контракта для общих классов BCL.