В моей базе кода есть несколько случаев, когда у нас есть класс с членом, который всегда возвращает константу.Например, что-то вроде этого:
public interface MyInterface
{
string SomeString { get; }
}
public class MyClass : MyInterface
{
public string SomeString => "Hello World!";
}
Все они имеют свои различные варианты использования.
Теперь я добавил анализатор кода в свой проект (Microsoft.CodeQuality.Analyzers) и для каждогоиз этих членов это помечено предупреждением: warning CA1822: Member SomeString does not access instance data and can be marked as static (Shared in VisualBasic)
Теперь, очевидно, я не могу пойти и пометить их как статические (так как они требуются в контракте интерфейса), так что я только что былподавляя их:
public class MyClass : MyInterface
{
#pragma warning disable CA1822 // Mark members as static
public string SomeString => "Hello World!";
#pragma warning restore CA1822 // Mark members as static
}
Есть также некоторые классы, которые не реализуют интерфейс, кажется, это немного зарождается в моей кодовой базе.
Но теперь мне интереснодействительно ли это использование свойств выражения тела что-то для нас делает?Я имею в виду, что анализатор не ошибается, это член, который не имеет доступа ни к какому экземпляру.