2012-01-27 47 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