好的,也许这不是最聪明的问题,但我不能让我的头靠近它。我想知道方法重载的性能。这是说明我的问题一个简单的例子:方法超载的性能
class testadd
{
public double _a { get; set; }
public double _b { get; set; }
public double add(double a, double b)
{
return a + b;
}
public double add()
{
return add(_a, _b);
}
}
如果我现在有这个类的一个实例,调用add(),像这样:
var tadd = new testadd();
tadd._a = 1;
tadd._b = 3;
Console.WriteLine(tadd.add());
不认为需要两个方法调用,首先添加(),然后添加(双a,双b)?如果你有一个更广泛的方法,这是一个很好的选择,因为我不必重新键入函数体,但如果它的性能降低,这可能仍然不是要走的路。或者编译器是否知道这一点,我不需要担心这一点?
您是否尝试过在带有秒表的巨大循环中运行两者(无印记)?反编译结果代码? – AFract
不要让参数成员成为参数。这个问题也与重载无关,你的'add()'也可以被称为'foo()'。问题在于调用链中的额外方法是否有明显的性能影响。即使它有,你会怎么做呢? – CodeCaster
对不起,你能否详细说明你的第一部分?我不是专家。我可以做些什么,以及我可以简单地将函数体复制到两种方法中以保存一个调用 – nik