Как найти, какое условие верно, без использования оператора if - PullRequest
1 голос
/ 29 июня 2011

У меня есть два условия.

Что я хочу знать, так это то, какое условие истинно, оба являются истинными / ложными, или только одно верно.

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

Есть ли какие-либо условия или циклы в C #, которые можно проверить и сказать за один раз?

Может ли кто-нибудь предложить мне альтернативное и чистое решение?

Сценарий:

string  garage = getGarageCost(id)
    string  helmet = getHelmetCost(id)

    if(garage == "")

    {

    string selected =  "dropdown is not selected"
    }

    else if(Convert.ToInt32(garage) >= 1)
    {
    string selected = "dropdown is selected"
    return selected value;
    }

    if(helmet == "")
    {
    string selected =  "dropdown is not selected"
    }
    else if(Convert.ToInt32(helmet) >= 1)
    {
    string selected = "dropdown is selected"
    return selected value;
    }

* Редактировать: *

У меня есть 2 раскрывающихся списка, которые при выборе передают выбранное значение на страницу.

Я должен проверить выпадающий список и затем передать значения, если ничего не выбрано, тогда он должен передать строку «Ничего не выбрано».

Если он выбран, он должен выполнить некоторые вычисления.

Проблема в том, что я должен сделать 5 операторов if, потому что есть 5 возможностей

  1. один выбран
  2. один не выбран
  3. в любом случае
  4. оба выбранных
  5. оба не выбраны

Ответы [ 2 ]

1 голос
/ 29 июня 2011

Если оба "dothis" одинаковы, то вы можете преобразовать int в int?и используйте эту логику:

int value = getGarageCost(id) ?? getHelmetCost(id);
if (value != null)
{
    dothis()
}
else
{
    // nothing selected in both lists
}

.

1 голос
/ 29 июня 2011

А как насчет switch заявления?

int  garage = getGarageCost(id)
int  helmet = getHelmetCost(id)

switch (garage) {

    case 0: 
        do some alternative work; 
        break;
    default: 
        everything else; 
        break;
}

switch (helmet) {

    case 0: 
        do some alternative work; 
        break;
    default: 
        everything else; 
        break;
}

pass data to view;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...