2012-01-27 48 views
0

我得有3種方法C# - Argumented方法調用

  1. 公共DoSth
  2. 私人DoItForReal
  3. 私人DoSthExtra

用戶可以調用2個構造一個(對象可以在施工期間更改爲olny)

我想讓用戶調用DoSth方法並根據construc TOR叫我的魔杖撥打: - DoItForReal(僅!) - DoItForReal和DoSthExtra

我的問題是wchih實現的性能更好(DoSth將被稱爲30次秒)?

Implementation1(使用如果衆所周知聲明):

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

Implementation2(使用事件):每秒

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

試着儘可能禮貌地閱讀它:你能找到不那麼愚蠢的名字嗎? – Kobi 2012-01-27 16:17:06

+0

我的直覺告訴我事情會變慢。你不能比'if'快得多。 – millimoose 2012-01-27 16:17:52

+2

出於好奇,你正在運行'DoSth()'30次/秒 - doSth *代表*拒絕Servith *嗎? – Yuck 2012-01-27 16:18:09

回答

2

30倍是沒什麼。你應該絕對去與第一個解決方案 - 它是更清楚發生了什麼事情。 (爲什麼你想要使用事件即使在第二種情況下也是如此......簡單的Action類型變量會更好,它不像你真的使用這種事件那樣)

嫌疑人第一種形式也更快,但它甚至不值得基準 - 因爲當你談論每秒30次的速度時,任何速度上的差異都可以忽略不計。

+0

@Downvoter:關心評論? – 2012-01-27 17:54:54