2010-11-02 18 views
2

有人可以告诉我,如果我明白这个权利。我理解这个权利吗?比较和分配一行代码?

private void SetFontWeight(FontWeight weight) 
     { 
      boldButton.IsChecked = weight == FontWeights.Bold; 
     } 

像什么让我是一切都在一条线。就像他们正在比较然后分配一样。

所以有这样的一些命令。从逻辑上看,它好像它会像

boldButton.IsChecked = (weight == FontWeights.Bold); 

这是正确的,它首先做比较,然后分配?

或者我猜的很长的路将是

if(weight == FontWeights.Bold) 
{ 
    boldButton.IsChecked = true; 
} 
else 
{ 
    boldButton.IsChecked = false; 
} 

我也觉得有点奇怪,他们比较一个结构(FontWeights)的类。我会虽然它会像

weight.IsBold == FontWeights.Bold 
+4

喜欢,她说,喜欢,喜欢,喜欢,喜欢,电影? – jason 2010-11-02 03:45:02

+0

我不认为人们会这样写*。 – EboMike 2010-11-02 03:46:46

+1

嘿,让chobo2休息一下;至少看起来似乎有一些拼写,标点和类似的句子结构,老兄! – 2010-11-02 03:57:30

回答

0

我敢肯定,这是相当于

boldButton.IsChecked = (weight == FontWeights.Bold); 

这样的事情是从C(原本)继承,它必须使用括号来分配第一:

if ((x = getcode()) == BAD_CODE) ... 

就您对比较的疑虑而言,这只是允许您重写比较运算符时变得可能的奇妙事物之一。

实际上,有些人会认为这个例子使更具有的意义,因为您不必担心它是否必须与IsBold属性进行比较。 clas应该(也确实)弄明白这一点,因为你用“粗体”的方式比较它:-)

0


就我的理解而言,平等检查将首先执行。不管你是否放上括号。
示例代码;

public boolean SampleFunction() 
{ 
int a = 1; 
int b = 2; 
boolean c= false; 
c= a==b; 
return c; 
} 

这将首先检查a是否等于b。所以它会返回布尔值并将其分配给c。