Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在方程的RHS中使用值后更改布尔值?_Java_C#_C++_Boolean - Fatal编程技术网

Java 在方程的RHS中使用值后更改布尔值?

Java 在方程的RHS中使用值后更改布尔值?,java,c#,c++,boolean,Java,C#,C++,Boolean,我不确定是否有办法做到这一点,但我想这是最好的提问地点 我想在使用布尔值后立即(或之前,只需要语义更改)更改布尔值,但在同一行中。 预期效果与本规范相同: bool flag, tempFlag; //whatever names ... tempFlag = flag; flag = !flag; 但是我想知道是否有一种简写的方法,在一行中。类似于tempFlag=flag:P 例如,可以在单行中使用int的值后立即更改其值,如中所示: int x = y++; 写这样一个动作有没有捷径

我不确定是否有办法做到这一点,但我想这是最好的提问地点

我想在使用布尔值后立即(或之前,只需要语义更改)更改布尔值,但在同一行中。 预期效果与本规范相同:

bool flag, tempFlag; //whatever names
...

tempFlag = flag;
flag = !flag;
但是我想知道是否有一种简写的方法,在一行中。类似于
tempFlag=flag:P

例如,可以在单行中使用int的值后立即更改其值,如中所示:

int x = y++;
写这样一个动作有没有捷径?

我的具体问题是C#,但我很好奇是否有其他流行语言有这样的方式

tempFlag = !(flag = !flag);
应在所有提到的语言中工作<代码>标志=!flag
返回新值,然后将其再次反转并放入
tempflag
。但正如纳萨诺利弗提到的,我认为没有必要做这样的事情。如果您希望它是线程安全的(这是我能想到的唯一一个类似这样的应用程序,我甚至不确定它是否能工作),请使用线程锁来实现


应在所有提到的语言中工作<代码>标志=!flag返回新值,然后将其再次反转并放入
tempflag
。但正如纳萨诺利弗提到的,我认为没有必要做这样的事情。如果你想让它成为线程安全的(这是我能想到的唯一一个类似这样的应用程序,我甚至不确定它是否能工作),请使用线程锁。

为什么要写一行其他人可能不理解的语法,而你可以写两行,每个人都知道你在做什么?@NathanOliver谢谢你的意见。是的,在大多数情况下我同意你的看法。然而,这只是一个我正在进行的个人实验项目,我正在努力将行数控制在最低限度,所以我觉得没有必要让代码具有难以置信的可读性(只要我了解上下文,我知道我会理解)。你现在这么说,但三年后当你回到它时,你会忘记它。然后你会想你到底在干什么。我很感激尽量减少行数,但你不应该为了它牺牲可读性。你也可以编写自己的类型,隐式转换为bool和overload++。我想……为什么要写一行其他人可能不理解的语法,而你可以写两行,每个人都知道你在做什么?@NathanOliver谢谢你的意见。是的,在大多数情况下我同意你的看法。然而,这只是一个我正在进行的个人实验项目,我正在努力将行数控制在最低限度,所以我觉得没有必要让代码具有难以置信的可读性(只要我了解上下文,我知道我会理解)。你现在这么说,但三年后当你回到它时,你会忘记它。然后你会想你到底在干什么。我很感激尽量减少行数,但你不应该为了它牺牲可读性。你也可以编写自己的类型,隐式转换为bool和重载+,我想..非常有创意(而且晦涩)。非常有创意(而且晦涩)。