这个定义得很好吗?
Streamreader ^reader = gcnew Streamreader("test.txt");
String ^line;
while ((line = reader->ReadLine()) != nullptr && line != "")
{
//do stuff
}
我相信我在某处读到不保证在第二个条件之前执行赋值。可能是我错了或者这只适用于C.
谷歌没有帮助我,这就是我在这里问的原因:))
答案 0 :(得分:4)
使用&&和||,保证在评估第二个条件之前评估第一个条件(包括赋值)。
按位&和|,另一方面,没有做出这样的保证。
答案 1 :(得分:1)
这里有一个相关的答案,有很多好的参考资料:Is short-circuiting logical operators mandated? And evaluation order?
如果你没有超载&&和||你会得到从左到右的短路评估。看看链接。