C# - Argumented方法调用

时间:2012-01-27 16:15:10

标签: c# .net performance events

我有一个有3种方法的课

  1. public DoSth
  2. 私人DoItForReal
  3. 私人DoSthExtra
  4. 用户可以调用2个构造函数之一(对象可以在构造期间更改)

    我希望用户调用DoSth方法并根据构造函数调用我的wand来调用: - DoItForReal(仅限!) - DoItForReal和DoSthExtra

    我的问题是wchih实现更好的性能(DoSth会被称为30秒)?

    Implementation1(使用if statemant):

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

    实施2(使用事件):

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

1 个答案:

答案 0 :(得分:2)

每秒30次 nothing 。你应该肯定采用第一种解决方案 - 它更清楚发生了什么。 (为什么你想要使用事件,即使在第二种情况下也是如此...一个简单的Action类型变量会更好。它不像你真的像事件一样使用它。)

怀疑第一种形式也更快,但它甚至不值得进行基准测试 - 因为当你谈到每秒调用30次时,速度的任何差异都可以完全忽略不计。< / p>