vb.net中and用法 vbnet handles

VB.net中的 and判断条件问题

911 X + 1 916 还有 704 Y +  1 709,没有这么连续判断的。

为吴堡等地区用户提供了全套网页设计制作服务,及吴堡网站建设行业解决方案。主营业务为成都网站建设、网站制作、吴堡网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!

是比较运算符,是运算符!+、-、*、/ 是算术运算符,也是运算符!

既然是运算符,就得按照运算优先级(所谓优先级,就是 * 运算比 + 运算要优先)从左到右依次计算,显然 911 X + 1 916 里两个 的运算优先级是相同的。

那么从左至右依次计算,先算 911 X + 1,得到结果 True(-1) 或者 False(0)(不要问我为什么True=-1,False=0,.NET里就是这么规定的),再计算 True / False 916,结果始终为 True。704 Y + 1 709 也是同理,两个 True 之间 And 了还是 True,结果当然是条件一直成立。

正确写法:

If (911  X + 1 And X + 1  916) And (704  Y + 1 And Y + 1  709) Then

在VB中如何表示“并且”

在VB中表示并且可用And运算符。

并且的英语译文是:and。

and的中文解释是:和, 与, 而, 及, 而且, 并且。

And 运算符,用来对两个表达式进行逻辑连接。

And 运算符示例

本示例使用 And 运算符来做两个表达式结果的逻辑合取(a logical conjunction)。

Dim A, B, C, D, MyCheck

A = 10: B = 8: C = 6: D = Null   ' 设置变量初值。

MyCheck = A B And B C   ' 返回 True。

MyCheck = B A And B C   ' 返回 False。

MyCheck = A B And B D   ' 返回 Null。

MyCheck = A And B   ' 返回 8(位比较的结果)。

问帖的代码该这样编写:

Private Sub Command1_Click()

Dim a As Long

Dim b As Long

a = Text1.Text

b = Text2.Text

If a = 123456 And b = 456789 Then

  MsgBox "11", , "11"

End If

End Sub

Private Sub Form_Load()

Text1 = 123456

Text2 = 456789

End Sub

VB.net语言当中,And和AndAlso有什么区别?

AndAlso是短路的逻辑与运算符,And有两个含义:非短路的逻辑与运算符;按位与运算符

Dim c=a AndAlso b表达式中,若表达式a的计算结果是False,无论表达式b是什么样,都不再进行计算,直接返回c的值

Dim c=a And b表达式中,无论a和b是怎样的表达式,都要全部计算完成后再返回c的值

AndAlso相比And的区别,除了性能优势外,更重要的是,从语义上来说

If a Then

If b Then

End If

End If

等价于If a AndAlso b Then而不等价于If a And b Then

考虑这种情况:

Dim m As ClassM=****

Dim c=m IsNot Nothing AndAlso m.Succeeded

这种实际编程中经常遇到的判断,如果把AndAlso替换成And,在m Is Nothing的情况下会引发NullReferenceException空引用异常,而AndAlso能确保不会引发空引用异常

进行逻辑运算的时候,And只在一种情况下有价值:不仅想要得到c的值,而且无论如何都希望执行b过程,并且自己能确保a=False不会影响b的执行。其他情况下务必使用AndAlso

OrElse和Or同理,作为上面那句的逆判断

Dim c=m Is Nothing OrElse m.Failed

也是经常使用的。当然在进行位运算时,只能用And和Or,AndAlso和OrElse没有位运算功能

vb.net and的特殊用法

我学的是VBS,问个问题,请看下面的程序单

(1)

dim a,b

a=12

b=13

if ba then

msgbox("B大于A")

end if

(2)

dim a,b

a=12

b=13

if ba then msgbox("B大于A")

这两个程序单中,为什么程序(1)需要用end if结尾,而程序(2)则不需要??


分享名称:vb.net中and用法 vbnet handles
文章起源:http://azwzsj.com/article/doghcgh.html