Nameof関数を使用して、プロパティ名を文字列として取得しています。
public bool IsRunning => ...;
...
RaisePropertyChanged(nameof(IsRunning));
Resharperはこれを警告で強調しています:
呼び出し元情報属性を持つパラメーターに渡される明示的な引数
コードは機能しますが、上記の警告が私が心配する必要があるものかどうかだけを考えていました。
上記の警告が私が心配すべき何かであるかどうかちょうど疑問に思っていました。
CallerMemberName
属性がアタッチされている場合、属性がそれを正確に行うため、明示的に値を渡す必要はありません。呼び出し元の名前を見つけて使用し、nameof
宣言を冗長にします。もちろん、これは実際のプロパティ実装からRaisePropertyChanged
を呼び出すことを前提としています。
ReSharperはこれらの呼び出しを冗長としてマークします 文字列リテラルを明示的に渡した場合 。 nameof
でも同じロジックを強制する必要があります。
IsRunning
プロパティからコードが呼び出される限り(警告が有効になります。その場合、プロパティ名の指定は冗長になります)。あなたがそうしているようには見えません。
警告は、RaisePropertyChanged
にCallerMemberNameAttribute
がプロパティに設定されていることを通知するだけです。無視しても安全です。