c# c#-6.0 resharper-9.0 nameof

c# - Resharper resalta el uso de nameof con "Argumento explícito pasado a parámetro con atributo de información del llamante"



c#-6.0 resharper-9.0 (2)

Me preguntaba si la advertencia anterior es algo de lo que debería preocuparme.

Cuando tiene CallerMemberName atributo CallerMemberName adjunto, no tiene que pasar un valor explícitamente, porque el atributo hará exactamente eso por usted. Encontrará el nombre de la persona que llama y lo usará, haciendo que su nameof declaración sea redundante. Esto, por supuesto, suponiendo que llame a RaisePropertyChanged desde la implementación de la propiedad real.

ReSharper marca estas llamadas como redundantes cuando se pasa explícitamente una cadena literal . Debería forzar la misma lógica con nameof también.

Estoy usando la función nameof para obtener un nombre de propiedad como una cadena así:

public bool IsRunning => ...; ... RaisePropertyChanged(nameof(IsRunning));

Resharper destaca esto con la advertencia:

Argumento explícito pasado a parámetro con atributo de información del llamante

El código funciona, me preguntaba si la advertencia anterior es algo de lo que debería preocuparme.


No mientras se llame a su código desde la propiedad IsRunning (lo que hace que la advertencia sea válida. Especificar el nombre de la propiedad sería redundante en ese caso). No parece que estés haciendo eso.

La advertencia solo le dice que RaisePropertyChanged tiene el CallerMemberNameAttribute establecido en la propiedad, que debería. Es seguro ignorarlo.