对常量使用表达式的属性-是反模式吗?

时间:2019-05-20 13:51:40

标签: c# constants code-analysis static-members anti-patterns

在我的代码库中,有一些情况下我们有一个类,该类的成员始终返回常量。例如,如下所示:

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
}

还有一些类没有实现接口,这在我的代码库中似乎是一种新兴模式。

但是现在我想知道,这种对表达体属性的使用实际上对我们有什么作用吗?我的意思是,分析器没有错,它是一个不访问任何与实例相关的成员。

0 个答案:

没有答案