考虑以下课程:
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)?在这种情况下调用静态/非静态方法时是否有任何性能差异?或者,在不使用实例成员时,仅使用静态方法是“代码样式规则”吗?
答案 0 :(得分:3)
你不会在可能的情况下使方法变为静态,你可以在有意义的时候进行,即。什么方法与特定实例无关,而是与一般类有关。
评估这是否是这种情况,但是你没有在方法中的任何地方使用当前实例,所以上面可能就是这种情况。