我正在使用 nameof 函数将属性名称作为字符串获取,因此:
public bool IsRunning => ...;
...
RaisePropertyChanged(nameof(IsRunning));
ReSharper 用警告强调了这一点:
显式参数传递给具有调用者信息属性的参数
该代码有效,我只是想知道上述警告是否是我应该担心的。
我正在使用 nameof 函数将属性名称作为字符串获取,因此:
public bool IsRunning => ...;
...
RaisePropertyChanged(nameof(IsRunning));
ReSharper 用警告强调了这一点:
显式参数传递给具有调用者信息属性的参数
该代码有效,我只是想知道上述警告是否是我应该担心的。
只是想知道上述警告是否是我应该担心的。
当您CallerMemberName
附加了属性时,您不必显式传递值,因为该属性将为您执行此操作。它将找到调用者的姓名并使用它,从而使您的nameof
声明变得多余。这当然是假设您RaisePropertyChanged
从实际的属性实现中调用。
当您显式传递字符串文字时, ReSharper 会将这些调用标记为多余。它也应该强制使用相同的逻辑nameof
。
只要您的代码是从IsRunning
属性调用的(这使得警告有效。在这种情况下指定属性名称将是多余的)。你似乎没有这样做。
警告只是告诉您在属性RaisePropertyChanged
上CallerMemberNameAttribute
设置了它应该的设置。忽略它是安全的。