更快的分配或检查bool值

Fir*_*DoL 1 c# boolean variable-assignment

问题很简单,CalledOften1和CalledOften2之间的关系更快

    class MyTest
    {
        public bool test = false;
        void CalledOften1()
        {
            if (!test) test = true;
            DoSomething();
        }
        void CalledOften2()
        {
            test = true;
            DoSomething();
        }
    }
Run Code Online (Sandbox Code Playgroud)

编译器是否经过优化(如果可能)以避免将来的测试分配(如果已经存在)?

更新: 这个问题只是一个信息,我不会使用if(bla)样式,如果我可以编写test = true,我更喜欢代码可读性.

Mar*_*ers 5

我更倾向于测量这些问题而不是猜测:

  • CalledOften1:每秒5200万次操作
  • CalledOften2:每秒5300万次操作

所以他们几乎一样.如果有的话,更简单的方法也更快.