Подтвердить что ты не робот

Resharper выделяет использование nameof с помощью "Явного аргумента, переданного параметру с атрибутом информации об абоненте",

Я использую функцию nameof, чтобы получить имя свойства как строку, таким образом:

public bool IsRunning => ...;

...
RaisePropertyChanged(nameof(IsRunning));

Resharper подсвечивает это с предупреждением:

Явный аргумент передается параметру с атрибутом информации об абоненте

Работает код, мне просто интересно, не стоит ли предупреждать об этом выше.

4b9b3361

Ответ 1

просто интересно было ли это предупреждение, о чем я должен беспокоиться.

Когда у вас есть атрибут CallerMemberName, вам не нужно явно передавать значение, потому что атрибут будет делать именно это для вас. Он найдет имя вызывающего абонента и использует его, сделав ваше объявление nameof излишним. Это, конечно, предполагает, что вы вызываете RaisePropertyChanged из фактической реализации свойства.

ReSharper отмечает эти вызовы как избыточные когда вы явно передаете строковый литерал. Он должен заставлять ту же логику с nameof.

Ответ 2

Не до тех пор, пока ваш код вызывается из свойства IsRunning (что делает предупреждение действительным. Указание имени свойства в этом случае будет избыточным). Кажется, вы этого не делаете.

Предупреждение просто сообщает вам, что RaisePropertyChanged имеет значение CallerMemberNameAttribute, указанное в свойстве. Безопасно игнорировать.