Resharper highlights use of nameof with "Explicit argument passed to parameter with caller info attribute"

Tim Rutter picture Tim Rutter · Aug 7, 2015 · Viewed 7.4k times · Source

I'm using the nameof function to get a property name as a string thus:

public bool IsRunning => ...;

...
RaisePropertyChanged(nameof(IsRunning));

Resharper highlights this with the warning:

Explicit argument passed to parameter with caller info attribute

The code works, I was just wondering if the above warning is something I should worry about.

Answer

Yuval Itzchakov picture Yuval Itzchakov · Aug 7, 2015

was just wondering if the above warning is something I should worry about.

When you have CallerMemberName attribute attached, you don't have to explicitly pass a value, because the attribute will do exactly that for you. It will find the callers name and use it, making your nameof declaration redundant. This of course assuming you call RaisePropertyChanged from the actual property implementation.

ReSharper marks these calls as redundant when you explicitly pass a string literal. It should force the same logic with nameof as well.