VB.net语言当中,And和AndAlso有什么区别? 今天才发现 And 和 AndAlso 的区别

vb.net\u4e2dand\u4e0eandslso\u6709\u4ec0\u4e48\u533a\u522b\u5462\uff1f

if \u6761\u4ef6A and \u6761\u4ef6B then ...
\u5206\u522b\u8fd0\u7b97\u6761\u4ef6A\u548c\u6761\u4ef6B\uff0c\u90fd\u4e3aTrue\u5219\u6267\u884cThen\u540e\u9762\u8bed\u53e5
if \u6761\u4ef6A andalso \u6761\u4ef6B then ...
\u5148\u8fd0\u7b97\u6761\u4ef6A\uff0c\u5982\u679c\u6761\u4ef6A\u4e3aTrue\uff0c\u518d\u8ba1\u7b97\u6761\u4ef6B\uff0c\u8fd8\u662f\u4e3aTrue\u5219\u6267\u884cThen\u540e\u9762\u8bed\u53e5\uff0c\u5982\u679c\u6761\u4ef6A\u7684\u8fd0\u7b97\u7ed3\u679c\u4e3aFalse\uff0c\u5219\u6761\u4ef6B\u4e0d\u8fdb\u884c\u8ba1\u7b97

\u53ef\u4ee5\u770b\u51fa\uff0candslso\u7684\u8ba1\u7b97\u91cf\u6bd4and\u5c11\uff0c\u63d0\u9ad8\u4e86\u4ee3\u7801\u6267\u884c\u6548\u7387

\u4e00\u3001\u610f\u601d\u4e0d\u540c\uff1a
and\u662f\u548c\u4e0e\u7684\u610f\u601d\uff0c\u7528\u6765\u8fde\u63a5\uff1b
also\u662f\u8868\u793a\u4e5f\u662f\u7684\u610f\u601d\u3002
\u4e8c\u3001\u903b\u8f91\u4e0d\u540c\uff1a
AndAlso\u76f8\u5bf9\u4e8eand\u6700\u5927\u7684\u7279\u6027\u662f\u4f1a\u81ea\u52a8\u5b9e\u73b0\u201c\u6700\u77ed\u8def\u5f84\u201d\u3002AndAlso\u548cOrElse\u662fvb.net\u5f15\u5165\u7684\u65b0\u8fd0\u7b97\u7b26\u3002
AndAlso\u662f\u77ed\u8def\u7684\u903b\u8f91\u4e0e\u8fd0\u7b97\u7b26\uff0cAnd\u6709\u4e24\u4e2a\u542b\u4e49\uff1a\u975e\u77ed\u8def\u7684\u903b\u8f91\u4e0e\u8fd0\u7b97\u7b26\uff1b\u6309\u4f4d\u4e0e\u8fd0\u7b97\u7b26\u3002
\u4e09\u3001\u8fd0\u7b97\u4e0d\u540c\uff1a
Dim m As ClassM=****
Dim c=m IsNot Nothing AndAlso m.Succeeded
\u8fd9\u79cd\u5b9e\u9645\u7f16\u7a0b\u4e2d\u7ecf\u5e38\u9047\u5230\u7684\u5224\u65ad\uff0c\u5982\u679c\u628aAndAlso\u66ff\u6362\u6210And\uff0c\u5728m Is Nothing\u7684\u60c5\u51b5\u4e0b\u4f1a\u5f15\u53d1NullReferenceException\u7a7a\u5f15\u7528\u5f02\u5e38\uff0c\u800cAndAlso\u80fd\u786e\u4fdd\u4e0d\u4f1a\u5f15\u53d1\u7a7a\u5f15\u7528\u5f02\u5e38\u3002
\u8fdb\u884c\u903b\u8f91\u8fd0\u7b97\u7684\u65f6\u5019\uff0cAnd\u53ea\u5728\u4e00\u79cd\u60c5\u51b5\u4e0b\u6709\u4ef7\u503c\uff1a\u4e0d\u4ec5\u60f3\u8981\u5f97\u5230c\u7684\u503c\uff0c\u800c\u4e14\u65e0\u8bba\u5982\u4f55\u90fd\u5e0c\u671b\u6267\u884cb\u8fc7\u7a0b\uff0c\u5e76\u4e14\u81ea\u5df1\u80fd\u786e\u4fdda=False\u4e0d\u4f1a\u5f71\u54cdb\u7684\u6267\u884c\u3002\u5176\u4ed6\u60c5\u51b5\u4e0b\u52a1\u5fc5\u4f7f\u7528AndAlso
OrElse\u548cOr\u540c\u7406\uff0c\u4f5c\u4e3a\u4e0a\u9762\u90a3\u53e5\u7684\u9006\u5224\u65ad\uff1b
Dim c=m Is Nothing OrElse m.Failed\u4e5f\u662f\u7ecf\u5e38\u4f7f\u7528\u7684\u3002\u5f53\u7136\u5728\u8fdb\u884c\u4f4d\u8fd0\u7b97\u65f6\uff0c\u53ea\u80fd\u7528And\u548cOr\uff0cAndAlso\u548cOrElse\u6ca1\u6709\u4f4d\u8fd0\u7b97\u529f\u80fd\u3002

\u6269\u5c55\u8d44\u6599\uff1a
AND\u5728\u7f16\u7a0b\u672f\u8bed\u4e2d\u8868\u793a\u4e00\u79cd\u8fd0\u7b97\u65b9\u6cd5\uff0c\u4e0d\u53ef\u9006
\u5e38\u7528\u7b26\u53f7\uff1a&\uff08\u6309\u4f4d\u4e0e\uff09\uff0c&&\uff08\u903b\u8f91\u4e0e\uff09
\u5176\u8fd0\u7b97\u89c4\u5219\u5982\u4e0b\uff1a
1&1=1;\u771f&&\u771f=\u771f;
1&0=0;\u771f&&\u5047=\u5047;
0&1=0;\u5047&&\u771f=\u5047;
0&0=0;\u5047&&\u5047=\u5047;
\u5373\u4e0e0\u52190\uff0c\u5e38\u7528\u6b64\u7279\u6027\u6765\u5c06\u67d0\u4e9b\u4f4d\u7f6e0\u6216\u4fdd\u5b58\u67d0\u4e9b\u4f4d\u3002
\u53c2\u8003\u8d44\u6599\u6765\u6e90\uff1a\u767e\u5ea6\u767e\u79d1-AND

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没有位运算功能

stretch=True的作用只是强迫图片改变大小(包括比例)来适合Image控件的形状,这是外观上的变化,其内部图片本身的尺寸没有发生变化。你可以自己试试,随便调整Image控件大小,然后会发现Image.Picture.Width和Image.Picture.Height这两个属性值没有改变。

  • VB.Net鐨刬f鏉′欢鏈夊閲嶇殑鏃跺欐庝箞鍐,鐢and(a=1,b=1)涓嶈
    绛旓細if濂藉儚涓嶈兘杩欎箞鐢ㄥ惂锛熷叾瀹璇█閮芥槸 if (鏉′欢1 杩愮畻绗 鏉′欢2) { code } vb搴旇涔熷樊涓嶅 濂藉儚鏃堕棿娌$敤浜 閮藉繕浜嗐俰f a > 1 or b>1 then
  • 璇烽棶:鍦VB.NET涓,+鍜&鐨勭浉鍚岀偣鏄粈涔,涓嶅悓鐐规槸浠涔?
    绛旓細浣犺嚜宸变綍涓嶈瘯璇曟晥鏋滃憿?print 3+5 print 3+"5"print "3"+"5"print 3&5 print 3&"5"print "3"&"5"缁撴灉涓猴細8 8 35 3 5 3 5 35 缁撴灉鍑烘潵浜嗭紝鑷繁鎯虫兂鍚
  • vb.net闂
    绛旓細Me.Close鏄叧闂獥浣擄紝濡傛灉绋嬪簭鍙湁涓涓富绐椾綋锛屽氨鐩存帴鍏抽棴绋嬪簭浜 Me.Dispose鐢ㄦ潵閲婃斁缁勪欢锛岄氬父涓嶉渶瑕佹墜宸ヨ皟鐢ㄥ畠 End鏄己鍒跺叧闂▼搴忥紝鑰屼笉鐞嗙▼搴忕幇鍦ㄧ殑鐘舵侊紝鍙湁涓囦笉寰楀凡鐨勬儏鍐典笅锛屾墠浣跨敤杩欎釜鍛戒护銆傛甯搁兘浼氳皟鐢∕e.Close锛岀劧鍚嶮e.Close灏变細鑷姩璋冪敤Me.Dispose銆傛墍浠e.Close鏄祫婧愰噴鏀炬渶褰诲簳鐨勬柟寮忋傝孍nd...
  • C# 閲岀殑and鍜or鎬庝箞琛ㄧず?
    绛旓細瀹冨湪缁ф壙C鍜孋++寮哄ぇ鍔熻兘鐨勫悓鏃跺幓鎺変簡涓浜涘畠浠殑澶嶆潅鐗规э紙渚嬪娌℃湁瀹忎互鍙婁笉鍏佽澶氶噸缁ф壙锛夈侰#缁煎悎浜VB绠鍗曠殑鍙鍖栨搷浣滃拰C++鐨勯珮杩愯鏁堢巼锛屼互鍏跺己澶х殑鎿嶄綔鑳藉姏銆佷紭闆呯殑璇硶椋庢牸銆佸垱鏂扮殑璇█鐗规у拰渚挎嵎鐨勯潰鍚戠粍浠剁紪绋嬬殑鏀寔鎴愪负.NET寮鍙戠殑棣栭夎瑷銆侰#鏄潰鍚戝璞$殑缂栫▼璇█銆傚畠浣垮緱绋嬪簭鍛樺彲浠ュ揩閫熷湴缂栧啓鍚勭...
  • vb.net鏄粈涔?
    绛旓細4.vb.net鍩轰簬.NET妗嗘灦锛屽紑鍙戣呭彲浠ュ揩閫熺殑鍙鍖栧紑鍙戠綉缁滃簲鐢ㄧ▼搴忋佺綉缁滄湇鍔°乄indows搴旂敤绋嬪簭鍜屾湇鍔″櫒绔粍浠躲5.鍥犱负vb.net鏄熀浜.NET妗嗘灦鐨勶紝鍙互涓庡叾瀹.NET璇█鍗忓悓宸ヤ綔銆6.鍦vb.net涓紝閫氳繃Web绐椾綋鍙夾DO.NET锛屽紑鍙戣呭彲浠ュ揩閫熷紑鍙戝彲鎵╁睍鐨刉eb绔欑偣銆傚鏋滀綘鑳借繘涓姝ュ涔爒b.net,浣犱細鍙戠幇鏇村鐨勬柊鐗规у拰...
  • 鍏充簬VB.net
    绛旓細http://book.jqcq.com/product/583735.html VB.NET鏄紑鍙戜汉鍛樻彁楂樺叾鐢熶骇鐜囩殑棣栭夌紪绋璇█銆俈B.NET 2003鍩轰簬涔嬪墠鐗堟湰鐨勫己澶у姛鑳斤紝鍙堟坊鍔犱簡璇稿閲嶈鐗规э紝杩樻敮鎸佸綋浠婃棩瓒嬫祦琛岀殑绉诲姩搴旂敤绋嬪簭寮鍙戙傛湰涔﹀叏闈㈢郴缁熷湴璁鸿堪浜哣B.NET 2003鐨勫悇椤归噸瑕佸姛鑳斤紝甯姪璇昏呭湪璁捐鍜屽紑鍙戣繃绋嬩腑搴旂敤闈㈠悜瀵硅薄鐨勬蹇垫潵鍒涘缓楂樻晥鐨...
  • MAC_VB.NET绋嬪簭璁捐璇█妯℃嫙棰
    绛旓細璇勮 鈹 涓炬姤 鏈浣崇瓟妗堟绛旀鐢辨彁闂呰嚜宸遍夋嫨锛屽苟涓嶄唬琛ㄧ櫨搴︾煡閬撶煡璇嗕汉鐨勮鐐 鍥炵瓟锛氱數瀛9527 鏂版墜 4鏈9鏃 20:57 涓锛巌nt jsValue(long n){int i,strl,half;char xy[20];ltoa(n,xy,10); /*娉ㄦ剰杩欓噷涓嶈兘浣跨敤itoa()鍑芥暟锛屽洜涓簄鏄痩ong 鍨嬬殑*/ strl=strlen(xy);half=strl/2;for(i=0;i...
  • VB.NET鏁扮粍闂,鍏充簬鏁版嵁鐨勮皟鐢ㄩ棶棰榽
    绛旓細鏂板缓涓涓被锛岀劧鍚庝娇鐢ㄧ被鐨勫疄渚嬫潵鍒涘缓鏁扮粍銆備笅闈唬鐮佹斁鍦ㄧ敵鏄庡锛岀被鐨勯噷闈紝姣斿Class Form1鐨勪笅闈 鈥樷樷橈紙鍒嗛殧绾匡紝浣犳噦鐨勶級鈥欌欌橠im person() As New member 鈥樷樷橈紙鍒嗛殧绾匡紝浣犳噦鐨勶級鈥欌欌欎笅闈竴娈电殑鍦ㄨ鏂囦欢鐨勬渶涓嬮潰鎻掑叆 鈥樷樷橈紙鍒嗛殧绾匡紝浣犳噦鐨勶級鈥欌欌機lass member Dim name As string...
  • VB.net寮鍙慍/S浜у搧鍔熻兘濡備綍
    绛旓細2鍜孷B鐨勫叧绯 VB.net 鏄惁璇ヨ鐪嬩綔VB鐨勬柊鐗堟湰鎴栬呮槸鍙︿竴涓畬鍏ㄤ笉鍚岀殑璇█灏氬湪浜夎涓傝櫧鐒跺苟闈炴樉鑰屾槗瑙,浣嗗彧瑕佹煇涓柟娉曡寮冪敤,瀹冨氨浼氬彲浼氳鑷姩杞崲,杩欒鏄庝簡璇ヨ瑷鐨勫彞娉曞苟娌℃湁鍑虹幇寰堝绐佺牬鎬х殑鍙樺寲,鍙槸澧炲姞浜嗗鏂板姛鑳界殑鏀寔,姣斿缁撴瀯鍖栨剰澶栧鐞嗘満鍒跺拰鐭惊鐜〃杈惧紡(structured exception handling and short ...
  • vb.net 鏃堕棿鐩稿姞
    绛旓細Module Module1 Sub Main() Console.WriteLine(DateTimeAdd("01:23:45")) Console.ReadLine() End Sub ''' ''' 鑾峰彇鏃堕棿鐨勭疮鍔犲 ''' ''' ''' <returns></returns> ''' <remarks></remarks> Private Function DateTimeAdd(ByVal sDatetime As String...
  • 扩展阅读:免费logo设计生成器 ... 免费logo一键生成器 ... 免费海报一键生成器 ... microsoft visual basic ... vbnet教程 ... vb5.cccdn.net ... vb.net ... vbnet是什么语言 ... c++和python先学哪个 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网