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