当前位置:  开发笔记 > 编程语言 > 正文

是否有一个类似于C#的VB.net!运营商?

如何解决《是否有一个类似于C#的VB.net!运营商?》经验,为你挑选了3个好方法。

经过两年的C#,我现在回到VB.net,因为我现在的工作.在C#中,我可以在字符串变量上对null或false值进行简短的测试,如下所示:

if(!String.IsNullOrEmpty(blah))
{
   ...code goes here
}

但是我对如何在VB.net中这样做有点困惑.

if Not String.IsNullOrEmpty(blah) then
   ...code goes here
end if

如果字符串不为null或为空,上述语句是否意味着?Not关键字是否像C#的!运营商一样运作?



1> RoadWarrior..:

在您显示的上下文中,VB Not关键字确实等同于C#!运算符.但请注意,VB Not关键字实际上已重载以表示两个C#等效项:

逻辑否定: !

按位补码: ~

例如,以下两行是等效的:

C#: useThis &= ~doNotUse;

VB: useThis = useThis And (Not doNotUse)



2> Ruben..:

是的他们是一样的


他们的行为方式相同,但他们肯定不一样.VB中的"不"被重载以表示逻辑否定和按位补码.

3> Konrad Rudol..:

Not就像!(在上下文中Boolean看到的那样.请参阅RoadWarrior的语义作为位算术中的补语).有一个特殊情况与Is运算符结合使用来测试引用相等性:

If Not x Is Nothing Then ' … '
' is the same as '
If x IsNot Nothing Then ' … '

相当于C#的

if (x != null) // or, rather, to be precise:
if (object.ReferenceEquals(x, null))

这里,IsNot优选使用.不幸的是,它不适用于TypeOf测试.

推荐阅读
郑小蒜9299_941611_G
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有