应该尽可能采用静态方法吗?

时间:2014-07-02 06:56:14

标签: c# design-patterns static-methods

考虑以下课程:

public class Extractor 
{

    public IService service;

    public Extractor(IService service) 
    {
        this.service = service;
    }

    public void DoSth() 
    {
        var sampleMethodInfo = this.service.GetMethodInfo();
        var version = ExtractAvailableMethodVersion(sampleMethodInfo);

        // other stuff
    }

    private int ExtractAvailableMethodVersion(MethodInfo methodInfo)
    {
        var regex = new Regex(MIGRATION_METHD_NAME_EXTRACT_VERSION);

        var matcher = regex.Match(methodInfo.Name);

        return Convert.ToInt32(matcher.Groups[1].Value);
    }
}

Resharper暗示ExtractAvailableMethodVersion是静态的。所以我的问题是 - 我应该在任何地方制作静态方法吗(如示例中的ablove)?在这种情况下调用静态/非静态方法时是否有任何性能差异?或者,在不使用实例成员时,仅使用静态方法是“代码样式规则”吗?

1 个答案:

答案 0 :(得分:3)

你不会在可能的情况下使方法变为静态,你可以在有意义的时候进行,即。什么方法与特定实例无关,而是与一般类有关。

评估这是否是这种情况,但是你没有在方法中的任何地方使用当前实例,所以上面可能就是这种情况。