2017-02-17 12 views
0

Я хочу иметь следующие результатыC# Bool использование операнда

A B = 
T T T 
F T F 
T F F 
F F F 

Я использую эту статью для ее достижения

A || B 

но это не дает правильные результаты.

Я использую неправильный операнд?

+7

использование и оператор А && Б –

+1

@HimBromBeere Becuase '' || является логический оператор в C#? – InBetween

+1

@InBetween Это относится ко многим языкам. – HimBromBeere

ответ

4

Allthough все другие правильные ответы, я хотел бы указать на то, что оператор вы просите не является ни ||, ни &&. Оператор, который фактически делает именно то, что вы просите, это & (и эквивалент, который вы ошибочно используете, будет |).

И какая разница? || и && являются операторами короткого замыкания. Что это значит? Это означает, что все, что находится на правой стороне оператора, оценивается только, если левая сторона - true. Этого не происходит с не версиями короткого замыкания операторов (по-настоящему bolean логических и и или операторов):

public bool True() 
{ 
    Console.WriteLine("True called."); 
    return true; 
} 

public bool False() 
{ 
    Console.WriteLine("False called."); 
    return false; 
} 

var b1 = False() && True(); //b1 will be false and "False called." will be 
          //printed on the console. 

var b2 = False() & True(); //b2 will be false and "False called. True called." 
          //will be printed on the console. 
3

Вы хотите and, но использовали or.

+2

, очевидно, не совсем ясно, как именно работают эти операторы. Небольшое разъяснение по этому вопросу действительно улучшит ответ –

2

Использование && (что означает 'и')

|| означает 'или'

+2

, по-видимому, не совсем ясно, как именно работают эти операторы. Немного разъяснения по этому вопросу действительно улучшат ответ –

3

Пользуюсь ли я неправильный операнд?

Да, вы есть.

Вам нужен И&& оператор, который будет верно, только если все условия являются истинного.

Вы используете ИЛИ|| оператор, который даст вам верно, даже если одна из условий истинного.

Используйте И&& оператор вместо ИЛИ||