Const增量

时间:2018-02-26 16:06:56

标签: c# debugging

有时,我想知道在我的产品代码中抛出NullReferenceException(或类似内容)的位置,而不会泄露任何客户信息。我倾向于做这样的事情(简化例子):

int flags = 0;
try{
    SomeOperation(foo.bar);
    flags |= 1 << 0;
    SomeOtherOperation(bar.foo);
    if (SomeCondition(baz.bar)){
        flags |= 1 << 1;
        stuff = bar.bar;
        flags |= 1 << 2;
    }
    while(SearchForStuff(bar.foo, foo.bar)){
        const int mask = (1 << 3) - 1;
        flags &= mask;
        flags |= 1 << 3;
        if (StuffExists(foo.bar.foo)){
            flags |= 1 << 4;
            DoThings(foo);
        }
    }
    flags |= 1 << 5;
    Baz result = bar.foo.DoBar(foo);
    flags |= 1 << 6;
    return result;
}
catch (NullPointerException e){
    SendCrashReport(e + " flags:" + flags);
}

我的问题是有没有办法在编译时增加位移,这样可以添加一些逻辑和flag增量,而不必修改以下flag增量的位移? / p>

编辑:我们目前没有在应用程序中包含调试符号,我不知道是否会有。

编辑2:我意识到|=+=的情况可能优于1 << 32

0 个答案:

没有答案