2013-09-04 6 views
1

Я читал, что не рекомендуется полагаться на умножение значения Boolean (True) или использовать его в вычислениях. Также заметили, что в VB.NET True есть -1, а не 1 или любое другое значение..NET умножается на логическое значение

У меня есть много ситуаций, когда я хотел бы умножить значение Boolean True и рассматривать его как целое число 1 (или -1 также сделает это). Каков предложенный способ использования Boolean True value в вычислениях.

+2

Вы не сказали, что считаете ложным * false * false/true is? Итак, как можно ответить? Булевы значения не являются числами. – dcaswell

+0

просто преобразуют true и false в желаемое значение, а затем умножают – mojtaba

ответ

0

Если вы полагаетесь на это подробно, я бы предложил поместить метод расширения на bool, который возвращает числовое значение по вашему выбору - на основе true/false.

0

Не знаете, почему вы хотите использовать логическое значение для вычисления. Они не предназначены для арифметических операций.

Dont знаю, если тот лучший способ, но вы можете сделать это: -

bool b = true; 
var x = 0; 

if(b == true) 
{ 
    x = -1; // Use the value of this x anywhere you want provided the scope is clear. 
} 
1

Если вы хотите использовать bool в качестве значения 0 или 1, соответствующие false и true соответственно, то сделать это:

bool b = true; 
double x = 3.14; 
double y = (b ? 1 : 0) * x; 
2

Если вам необходимо сделать расчет на основе стоимости Boolean, использовать тройной оператор в C#, или IF выражение в VB.NE T:

Res = SomeValue * If(MyBoolean, 1, 0) + SomeOtherValue 

Выражение типа, которые делают ваши намерения ясно читателю, что улучшает читаемость даже в языках, которые присваивают BOOLEANS конкретных числовых значений (например, C или C++).

0

Вы можете использовать ternary operator, чтобы вам не приходилось гадать, если значение true равно 1 или -1.

int product = someValue * (myBool ? 1 : 0) 

Это также позволит вам определить другие значения как true, так и false.

Смежные вопросы