首页 / 知识
关于.net:C#中的false运算符有什么用呢?
2023-04-13 13:15:00

What's the false operator in C# good for?C#中有两个奇怪的运算符:
如果我理解这一点,这些运算符可以用于我想要使用的类型而不是布尔表达式,并且我不希望提供对bool的隐式转换。 假设我有以下课程:
所以我可以编写以下代码:
但是,对于上面的所有示例,仅执行true运算符。 那么C#中的错误运算符是什么? 注意:此处和此处可以找到更多示例。
您可以使用它来覆盖
无法覆盖 例如,看看这段代码(来自http://ayende.com/blog/1574/nhibernate-criteria-api-operator-overloading - 我发现了这个技巧; @BiggsTRC的归档版本):
这显然是副作用,而不是它的预期使用方式,但它很有用。
Shog9和Nir:
您链接到http://msdn.microsoft.com/en-us/library/6x6y6z4d.aspx的页面说明了它们的用途,这是一种在引入可空值类型之前处理可空的bool的方法。 我想现在他们对ArrayList这样的东西很有用 - 也就是说什么都没有。
AFAIK,它将用于测试中的假,例如当
调用
请注意,必须实现 从您链接到它的MSDN文章中可以看出,在Nullable(即int?,bool?等)类型被引入C#2语言之前允许可以为空的布尔类型。因此,您将存储一个内部值,指示值是true还是false或null,即在您的示例中> 0表示true,<0表示false,== 0表示null,然后您将获得SQL样式的null语义。您还必须实现.IsNull方法或属性,以便可以显式检查无效性。 与SQL相比,假设一个表有3行,其中值Foo设置为true,3行值Foo设置为false,3行值Foo设置为null。
为了计算所有行,您必须执行以下操作: -
这个'IS NULL'语法在你的类中将具有等效的代码为.IsNull()。 LINQ使与C#的比较更加清晰: -
想象MyTypeEnumberable具有完全相同的数据库内容,即3个值等于true,3个值等于false,3个值等于null。在这种情况下,在这种情况下,totalCount将评估为6。但是,如果我们重新编写代码: -
然后totalCount将评估为9。 在关于false运算符的链接MSDN文章中给出的DBNull示例演示了BCL中具有此确切行为的类。 实际上结论是你不应该使用它,除非你完全确定你想要这种类型的行为,最好只使用更简单的可以为空的语法! 更新:我刚刚注意到你需要手动覆盖逻辑运算符!,||和&&使这项工作正常。我相信虚假运算符会输入这些逻辑运算符,即表示真,假或"其他"。正如另一条评论所指出的那样!x不会起作用;你必须超载!怪事! |
最新内容
相关内容
五个用于Python前端开发的工具
五个用于Python前端开发的工具,代码,工具,项目,设计,软件,在线,基础,平台,状态,业务,Python是一种高度通用且功能强大的编程语言,其特质使其非在Python培训中有哪些必学的运算符
在Python培训中有哪些必学的运算符?,项目,培训,数字,变量,赋值,符号,两个,表示,数学,示例,不论是Python还是其他后端编程语言,都少不了运算符的什么是Python语言?主要应用于哪些领
什么是Python语言?主要应用于哪些领域?,分析,人工智能,数据,公司,金融,人员,网络,量化交易,全球,时间,在当今社会,Python是一种非常流行的编程语用于业余项目的优秀 Python 库
用于业余项目的优秀 Python 库,数据,工具,项目,信息,培训,系统,地图,下来,工作,管理,1.在数据库中即时保存数据:Dataset当我们想要在不知道最Python 运算符
Python 运算符,名字,培训,顺序,赋值,优先级,算术,圆括号,逻辑,身份,成员,算术运算符:+,-,*,/,%,**,//赋值运算符:=,+=,-=,*=,/=,%=,**=比较运算符:==,!=,>,=,成员python 用于序列操作的常用内置函
python 用于序列操作的常用内置函数,较大,培训,列表,函数,元素,对象,参数,操作,字符串,序列,len(列表):返回列表中的元素个数,同样适用于元组、python海象运算符的使用
python海象运算符的使用,培训,代码,海象,赋值,操作,可读性,条件下,表达式,意义,以上,python海象运算符的使用1、在判断条件下允许操作。在一python运算符的优先级规则
python运算符的优先级规则,培训,优先级,括号,规则,操作,赋值,顺序,实例,规律,以上,python运算符的优先级规则1、先执行优先级高的运算,优先级关于评分:在Lucene中,术语如何用于计
关于评分:在Lucene中,术语如何用于计算分数,我可以使用CustomScoreQuery覆盖它吗?,关于评分:在Lucene中,术语如何用于计算分数,我可以使用关于数据库:LINQ to SQL用于自引用
关于数据库:LINQ to SQL用于自引用表?,关于数据库:LINQ to SQL用于自引用表?,类别,自引用,都有,我有一个,LINQ to SQL for self-referenc是否有用于在数据库中存储标准化电
是否有用于在数据库中存储标准化电话号码的标准?,是否有用于在数据库中存储标准化电话号码的标准?,字段,数据结构,数据库,电话号码,Is在C中,yield关键字用于什么?
在C中,yield关键字用于什么?,在C中,yield关键字用于什么?,代码片段,其中一个,包含,答案,What is the yield keyword used for in C#?
在