Условный оператор?

225
26 июля 2017, 19:47

Вот код

bool t1;
if(t.Length>=2)
    if (t[1] == "да")
       t1 = true;
       else
           t1 = false;

Как это будет выглядеть в в условном операторе ?

пытался решить его так

bool t1 = (t.Length >= 2) ? (t1[1]=="да")? true : false;

но выдает синтаксическую ошибку. Как правильно написать?

Answer 1

Ваш код может быть переписан следующим образом.

bool t1 = t.Length>=2 && t[1] == "да";

Пояснение. В C# при проверке логического И - && происходит проверка на true всех операндов, слева на право. Первый попавшийся операнд со значением false обрывает дальнейшие вычисления. В качестве примера:

public static bool ThrowExceptionMethod()
{
    throw new Exception("ThrowExceptionMethod()");
}
public static void Main(string[] args)
{
    if (false && ThrowExceptionMethod())
        Console.WriteLine("true");
    else 
        Console.WriteLine("false");
}

Результат:

false
READ ALSO
Компилятор игнорирует Url.Action [требует правки]

Компилятор игнорирует Url.Action [требует правки]

При попытки вывести изображение из бд в представлении, компилятор не попадает в метод GetImage(), то бишь он не заходит в строку 33Если поставить...

217
Как запретить двигать консоль

Как запретить двигать консоль

Какими средствами WinAPI можно заблокировать перемещение окна консоли?

260
Ошибка выполнения запроса в c#

Ошибка выполнения запроса в c#

Есть запрос выполняемый в коде c#Вылетает ошибка

279
c# - чтение Excel,oledb

c# - чтение Excel,oledb

Используется провайдер MicrosoftACE

316