繁体   English   中英

C#逻辑运算符

[英]C# Logical Operator

Iam正在一个应用程序上,我需要基于其他两个布尔变量ab的值来获取布尔标志值f 以下是条件:

  1. 如果ab都为真,则ftrue
  2. 如果ab均为假,则ftrue
  3. 如果a为true且b为false,则ftrue
  4. 如果a为假而b为真ffalse

我想知道是否有一种简单的方法(如单个运算符)来获取f的值,而不是我拥有的值:

a?true:(b?false:true)

a ? true : cond a ? true : cond等效于a || cond a || condb ? false : true b ? false : true!b相同,因此您可以使用:

bool result = a || !b;

您要寻找的是反方向的逻辑含义:

a<=b

a    1 1 0 0 
b    1 0 1 0
a<=b 1 1 0 1 

编辑:我没有对我的答案给出很好的解释,关于C#解释以及实际的逻辑含义是:

首先,=>是if ... then的形式符号。

P => Q表示如果P则Q。

逻辑含义非常直观,因为我们可以将大多数情况转换为自然语言。 例:

如果n> 3,则n + 1> 3

这显然是真的。

裸露一些东西-引用逻辑推理:第一门课程

在普通语言中,“如果...那么”具有双重含义。 假设您说“如果正在下雨,那么我不会来”。 通常这也意味着``但是如果不下雨,我会来的。确实您没有说出最后一句话,但是,有些常识可以得出最后一句话的结论。

关于如何在此链接上使用C#中的逻辑含义的一个很好的解释: https : //ericlippert.com/2015/11/05/logical-implication/

此外,李的回答确实是正确的。 格式的逻辑含义

C#中的a => b是(!a || b)

因此,问题的答案将是

C#中的a <= b是(a ||!b)

当我将您的规则分解成更简单的术语时,我得到了:

  1. 如果a == bftrue
  2. 否则, f == a

因此,此表达式的一种简单形式为:

f = (a == b) || a

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM