首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >相当于Visual的和和或在C#中?

相当于Visual的和和或在C#中?
EN

Stack Overflow用户
提问于 2010-10-14 04:15:41
回答 6查看 3.9K关注 0票数 7

我知道AndAlso等同于&&OrElse等价于||。但是,在And中实现Visual的AndOr最干净的方法是什么呢?

例如,考虑下面的VB.NET代码。ValidateForControl方法执行一些验证,并返回指定控件的状态是否有效。如果所有控件都有效,则整个输入表单都是有效的。然而,每个控制必须单独验证,即使一个是无效的(这要求操作者不短路)。Visual的And操作符非常适合这种情况,但不幸的是,据我所知,C#中没有等效的操作符(&&短路)。

代码语言:javascript
复制
Return _
    Me.ValidateForControl(Me.firstNameTextBox) And
    Me.ValidateForControl(Me.middleNameTextBox) And
    Me.ValidateForControl(Me.lastNameTextBox) And
    Me.ValidateForControl(Me.streetAddressTextBox) And
    Me.ValidateForControl(Me.cityTextBox) And
    Me.ValidateForControl(Me.stateComboBox) And
    Me.ValidateForControl(Me.zipCodeMaskedTextBox) And
    Me.ValidateForControl(Me.phoneMaskedTextBox) And
    Me.ValidateForControl(Me.emailAddressTextBox) And
    Me.ValidateForControl(Me.checkInDateTimePicker) And
    Me.ValidateForControl(Me.checkOutDateTimePicker) And
    Me.ValidateForControl(Me.rentalUnitsGroupBox)

另外,对于布尔人,^在C#中是否等同于Visual中的Xor

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2010-10-14 04:18:19

And -> &

Or -> |

是的,Xor -> ^

票数 7
EN

Stack Overflow用户

发布于 2010-10-14 04:24:26

MSDN文档for &&有一个示例,显示“规则和”&和“短路”和“&&”。

请务必评论您对&的使用,因为大多数C#程序员都希望使用bool&&

您还可以编写And扩展方法。

代码语言:javascript
复制
static class BooleanExtensions
{
    public static bool And(this bool lhs, bool rhs)
    {
        return lhs & rhs;
    }
}

尽管您最好还是坚持使用本机&语法。请注意,AndAlso扩展方法不会有用,因为rhs参数将作为方法调用的一部分进行计算。

票数 7
EN

Stack Overflow用户

发布于 2010-10-14 04:18:07

您只需将&用于And|用于Or。当两个操作数都是布尔值时,^!=都等价于Xor (以及彼此)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3930042

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档