2012-02-10 29 views
-7

if b == c then然后在布尔中写一个是否可以使用c#编写a = b == c?

是可以用c#.net写的吗?

+13

亲自试一试,看看... – benjy 2012-02-10 14:06:24

+2

你试过了吗? – Nick 2012-02-10 14:06:35

+2

注意的意思更清晰,如果你写一个'=(B == C);' – 2012-02-10 14:07:28

回答

4

是的,但你为什么不只是试试呢?它不仅可能来写它,但它实际上是合法的C#。它会将布尔表达式b == c的值分配给变量a,我假设您隐式或显式声明为bool。风格上,我更愿意看到

a = (b == c); 

var a = (b == c); 

bool a = (b == c); 

我觉得这些都是比较容易比没有括号阅读。

4

是因为等号(==)具有比分配一个(=)的优先级高,所以它首先得到评价。

+1

+1非常好的一点! [7.2.1运算符优先级和关联性](http://msdn.microsoft.com/zh-cn/library/aa691323%28v=vs.71%29.aspx)。 – 2012-02-10 14:22:14

1

是吗?

问题是什么?

var b = 1; 
var c = 1; 
var a = b == c; 
0

不完全知道什么你在这里得到,但以下是有效的:

var a = (b == c) 

其中将真或假取决于b和c是否相等。

0

是的,这是可能的。 编译器将首先评估b == c,然后将值赋给a。

相关问题