これは最もスマートな質問ではないかもしれませんが、私はそれを回避することはできません。私はメソッドのオーバーロードのパフォーマンスについて疑問を抱いていました。私は今、このクラスのインスタンスを持っているし、(を追加呼び出す場合は、次のように、)メソッドのオーバーロードのパフォーマンス
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);
}
}
:
var tadd = new testadd();
tadd._a = 1;
tadd._b = 3;
Console.WriteLine(tadd.add());
その2回のメソッドの呼び出しを必要としないここで私の質問を説明する簡単な例であります、最初にadd()を追加してから(double a、double b)を追加しますか?より広範なメソッドを使用している場合は、関数本体を再入力する必要がないため、これは非常にきれいですが、パフォーマンスが低下した場合でも、これはまだまだ道のりではありません。コンパイラはこれを理解していますか?これについて心配する必要はありませんか?
ストップウォッチを使用した巨大なループで(印刷ラインなしで)両方を実行しようとしましたか?結果コードを逆コンパイルするには? – AFract
何をパラメータにする必要があるのメンバーを作成しないでください。この質問はオーバーロードとは関係ありません。あなたの 'add()'は 'foo()'と呼ばれることもあります。問題は、コールチェーン内の余分なメソッドがパフォーマンスに大きな影響を与えるかどうかです。たとえそれがあっても、それについて何をするつもりですか? – CodeCaster
申し訳ありませんが、あなたの最初の部分を詳しく説明できますか?私は専門家ではない。私はそれについて何をすることができます、私は単に、両方のメソッドに関数本体をコピーして、1つの呼び出しを保存することができます – nik