在 .NET VB 和 C# 中,我们可以使用 AndAlso ( && )、OrElse ( || ) 进行逻辑运算
在 Python 中,等效的逻辑运算符是什么?它们是否仅限于“和”和“或”?
更新:以下是 And/Or 和 AndAlso/OrElse 之间的区别
引用自/sf/answers/588664191/
Or/And 将始终评估两个表达式,然后返回结果。它们不是短路评估。
OrElse/AndAlso 是短路的。仅当无法仅从左侧表达式的评估中确定结果时,才会评估右侧表达式。(这意味着:如果左表达式为假,OrElse 只会计算右表达式,如果左表达式为真,AndAlso 只会计算右表达式。)
问题:
我目前在C#中有以下代码行:
if ((oAEAuthInfo.GetInfo("LetterTo_name") == (oAEAuthInfo.GetInfo("firstname") + " " + oAEAuthInfo.GetInfo("lastname"))) && (oAEAuthInfo.GetInfo("Name")).Contains("OMEGA") || (oAEAuthInfo.GetInfo("Name")).Contains("Alpha"))
Run Code Online (Sandbox Code Playgroud)
它显示我想要的正确.
但是,当我尝试在VB中做同样的事情时:
IF ((oAEAuthInfo.GetInfo("LetterTo_name") = (oAEAuthInfo.GetInfo("firstname") + " " + oAEAuthInfo.GetInfo("lastname"))) And ((oAEAuthInfo.GetInfo("Name")).Contains("Omega") Or (oAEAuthInfo.GetInfo("Name")).Contains("Alpha"))) THEN
Run Code Online (Sandbox Code Playgroud)
它没有显示任何结果.这意味着当我运行我的C#版本的代码时,它会显示一个图像但是对于VB版本,没有任何反应.
我究竟做错了什么?
UPDATE
大家好.我想感谢大家的帮助,并帮助我更好地理解VB.但是,它仍然没有显示任何图像,我不知道为什么.
以下是我正在做的事情.出于某种原因,当我尝试分配变量时,它也没有显示任何结果.任何帮助,将不胜感激.
<table width="100%" CELLSPACING="0" CELLPADDING="0">
<tr>
<td align="center">
<%
IF ((oAEAuthInfo.GetInfo("LetterTo_name") = (oAEAuthInfo.GetInfo("firstname") & " " & oAEAuthInfo.GetInfo("lastname"))) AndAlso ((oAEAuthInfo.GetInfo("Name")).Contains("OMEGA") OrElse (oAEAuthInfo.GetInfo("Name")).Contains("ALPHA"))) THEN
select (oAEAuthInfo.GetInfo("Site"))
case "R107":
case "R0712":
case "R108":
case "R10812":
case "R113":
case "R11312":
case "R115":
case "R11512":
case "R10702":
case "R10802": …Run Code Online (Sandbox Code Playgroud)