小编The*_*ite的帖子

if(boolean)总是执行

这是我的代码简化

private static boolean isTrue()
{
    return false;
}


public void Update()
{
    if (isTrue())
        doSomething();
}
Run Code Online (Sandbox Code Playgroud)

由于一些奇怪的原因doSomething()总是被执行,无论isTrue()返回什么.为什么?

编辑:关闭if语句后,我在屏幕外的某个地方有一个分号,如下所示:

if (false);
    doSomething();
Run Code Online (Sandbox Code Playgroud)

像这样doSomething()总是被执行.

java

2
推荐指数
1
解决办法
123
查看次数

线程和IndexOutOfRange异常

请注意,在当地人i = 3

你可以清楚地看到args []的最高索引是2,但迭代器不知何故得到3.

编辑:评论的Thread.Sleep神奇地修复了问题.

c# multithreading outofrangeexception

1
推荐指数
1
解决办法
65
查看次数

具有范围/代码块的互斥锁/锁定

我记得在某个会议上看过它,但找不到任何相关信息.

我想要的东西:

lock(_somelock)
{
    if (_someBool)
        return;

    DoStuff();
} // Implicit unlock
Run Code Online (Sandbox Code Playgroud)

代替:

lock(_somelock);
if (_someBool)
{
    unlock(_somelock);
    return;
}

DoStuff();
unlock(_somelock);
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,代码变得非常臃肿,有多个早期返回.显然,人们可以制作另一个功能来处理锁定/解锁,但它更好吗?

可以使用C++ 11标准库吗?

c++ multithreading mutex standard-library c++11

0
推荐指数
1
解决办法
197
查看次数

返回指向成员数据的指针

伪代码,我不知道这是否编译,但你明白了.

class DataHolder
{
    void GetData(float* ptr)
    {
        ptr = dataNeededByOtherClass;
    }

    float* dataNeededByOtherClass; // Initialized and modified elsewhere
};

class DataUser
{
    void DoStuff()
    {
         float* ptrToData;
         dataHolder->GetData(ptrToData);

         // ptrToData points to garbage Why?

         ptrToData = dataHolder->dataNeededByOtherClass;
         // ptrToData now points to the correct data
    }
};
Run Code Online (Sandbox Code Playgroud)

我在这看什么?

c++

-3
推荐指数
1
解决办法
70
查看次数