在我的代码库中,有一些情况下我们有一个类,该类的成员始终返回常量。例如,如下所示:
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
}
还有一些类没有实现接口,这在我的代码库中似乎是一种新兴模式。
但是现在我想知道,这种对表达体属性的使用实际上对我们有什么作用吗?我的意思是,分析器没有错,它是一个不访问任何与实例相关的成员。