2012-01-27 15 views
0

を呼び出す引数付きメソッドオブジェクトは構築中にolnyに変更することができます)C#の - 私は3つの方法</p> <ol> <li>を持つクラスを持っている公共DoSth</li> <li>プライベートDoItForReal</li> <li>プライベートDoSthExtra</li> </ol> <p>ユーザーは、(2つのコンストラクタのいずれかを呼び出すことができます

DoSthメソッドを呼び出す場合はconstruc TORは、私が呼び出すためにワンドと呼ばれていました: - DoItForReal(だけ!) - DoItForRealとDoSthExtra

私の質問wchih実装は(DoSthが呼び出されます30回秒)の性能の優れているのですか?

Implementation1(statemant場合に使用):

DoSth() 
{ 
    DoItForReal(); 
    if (ctor1) 
     DoSthExtra(); 
} 

Implementation2(イベントを使用して):毎秒

private event Action DoSthEvent; 
Ctor1() 
{ 
    DoSthEvent += DoItForReal; 
    DoSthEvent += DoSthExtra; 
} 
Ctor2() 
{ 
    DoSthEvent += DoItForReal; 
} 
DoSth() 
{ 
    DoSthEvent(); 
} 
+4

可能な限り丁寧にそれを読むようにしてください:より愚かな名前を見つけることができますか? – Kobi

+0

私の腸は、イベントが遅くなると私に伝えます。あなたは 'if'よりもはるかに高速化できません。 – millimoose

+2

あなたはDoSth()を毎秒30回実行しています。DoSth *はDenial of Servith *ですか? – Yuck

答えて

2

30回ありません。 間違いなくは最初の解決策になっています。何が起きているのかははっきりしています。 (なぜイベントを2番目のケースでも使用したくないのですが...単純なActionタイプの変数が良いでしょう。これは実際にイベントのように使用しているようではありません)

I suspect最初のフォームは高速ですが、ベンチマークの価値はありません。速度の差は、毎秒30回の呼び出しではほとんど無視されるためです。

+0

@Downvoter:コメントしますか? –

関連する問題

 関連する問題