Vb.net 在Visual Basic 2008中使用两个等号
在代码中,为什么这不起作用Vb.net 在Visual Basic 2008中使用两个等号,vb.net,variable-assignment,equality,Vb.net,Variable Assignment,Equality,在代码中,为什么这不起作用 intMax = intTopValue = 20 这被解释为intMax=(intTopValue=20) intTopValue=20将检查intTopValue是否等于20,并返回true或false。 然后将该布尔值分配给intMax 大多数语言没有这个问题,因为它们对赋值(=或:=)和相等(=或=)使用单独的运算符 相反,VB为这两个操作共享=。因此,当把a=b写成一个表达式时,它总是表示相等。匈牙利符号不受欢迎。不要在变量名中添加int。@SLaks匈牙
intMax = intTopValue = 20
这被解释为
intMax=(intTopValue=20)
intTopValue=20
将检查intTopValue
是否等于20
,并返回true或false。然后将该布尔值分配给
intMax
大多数语言没有这个问题,因为它们对赋值(=
或:=
)和相等(=
或=
)使用单独的运算符
相反,VB为这两个操作共享
=
。因此,当把a=b
写成一个表达式时,它总是表示相等。匈牙利符号不受欢迎。不要在变量名中添加int
。@SLaks匈牙利符号有实际问题吗?这可能仅仅是另一个宗教冲突的问题吗?@nick-匈牙利符号对于所有.NET开发都是不赞成的:参见中的第2.6节-甚至在VB.NET中。我是一个初学者,所以我试图理解这一点,但是-VB将等式的左侧作为答案,将等式的右侧作为等式本身,这是否有效?这两个等号告诉VB intMax等于一个未声明的变量。我不知道你在说什么。不要认为这是一个等式。这是一个赋值-它将intMax
赋值给一个表达式。。。这更有道理,谢谢你。如果你还有什么要补充的话,我将不胜感激。有些语言也可能有双重赋值,即A=B=C意味着将C的值赋值给A和B。所以,至少可以说,这个结构是相当模糊的。我不建议在任何编程语言中使用它。@MikeKeskinov:在除VB以外的每种语言中,=
是一个普通运算符,它赋值给左操作数并计算赋值,因此解析为a=(B=C)
,而B=C
计算为C
。这是正常语法。