6

C#では、短いメソッド(with?)を使用して次のifelseステートメントをどのように表現できますか?

 if (condition1 == true && count > 6)
           {
               dothismethod(value);

           }
           else if (condition2 == false)
           {

               dothismethod(value);
           }

私のコードはこれらのステートメントで本当に乱雑に見えます。誰かが私に良いリソースを教えてもらえますか?それ以外の場合はショートカット構文ですか?

4

4 に答える 4

19

あなたが書き込もうとしているようですね

if ((condition1 && count > 6) || !condition2)
    SomeMethod();
于 2012-11-21T23:13:05.457 に答える
9

?if/elseは「ショートカット」ではありません。これは三項演算子と呼ばれ、次のように条件に基づいて変数に値を割り当てたい場合に使用されます。

string message = hasError ? "There's an error!" : "Everything seems fine...";

MSDN: http: //msdn.microsoft.com/en-us/library/ty67wk28%28v=vs.100%29.aspx

于 2012-11-21T23:15:57.473 に答える
4

あなたはそれを次のように書くことができます:

if ((condition1 == true && count > 6) || condition2 == false)
{
    dothismethod(value);
}

しかし、個人的には、最初の式を別の変数として定義するので、ifステートメントがより明確になります。

bool meaningfulConditionName = (condition1 == true) && count > 6;
if (meaningfulConditionName || !condition2)
{
    dothismethod(value);
}
于 2012-11-21T23:24:25.983 に答える
0

条件演算子?は、値の代入に対してのみ機能します。ただし、結果は両方で同じであるため、両方を1つに折りたたむことができます。

if ((condition1 == true && count > 6) || condition2 == false)
           {
               dothismethod(value);
           }

または、さらに簡潔に:

if ((condition1 && count > 6) || !condition2) dothismethod(value);
于 2012-11-21T23:15:17.947 に答える