Resharper выделяет использование nameof с помощью "Явного аргумента, переданного параметру с атрибутом информации об абоненте",
Я использую функцию nameof, чтобы получить имя свойства как строку, таким образом:
public bool IsRunning => ...;
...
RaisePropertyChanged(nameof(IsRunning));
Resharper подсвечивает это с предупреждением:
Явный аргумент передается параметру с атрибутом информации об абоненте
Работает код, мне просто интересно, не стоит ли предупреждать об этом выше.
Ответы
Ответ 1
просто интересно было ли это предупреждение, о чем я должен беспокоиться.
Когда у вас есть атрибут CallerMemberName
, вам не нужно явно передавать значение, потому что атрибут будет делать именно это для вас. Он найдет имя вызывающего абонента и использует его, сделав ваше объявление nameof
излишним. Это, конечно, предполагает, что вы вызываете RaisePropertyChanged
из фактической реализации свойства.
ReSharper отмечает эти вызовы как избыточные когда вы явно передаете строковый литерал. Он должен заставлять ту же логику с nameof
.
Ответ 2
Не до тех пор, пока ваш код вызывается из свойства IsRunning
(что делает предупреждение действительным. Указание имени свойства в этом случае будет избыточным). Кажется, вы этого не делаете.
Предупреждение просто сообщает вам, что RaisePropertyChanged
имеет значение CallerMemberNameAttribute
, указанное в свойстве. Безопасно игнорировать.