1

C# の場合

私がフォローしている本では、プロパティの設定と取得について次のようにアドバイスされています。

double pri_test;

public double Test
{
    get { return pri_test; }
    set { pri_test = value < 0 ? -value : value; }
}

valueプロパティを使用して外部からの入力値であることは理解していますが、-valueシンボル?:

誰かがこれが何を意味するのか説明できvalue < 0 ? -value : valueますか?

4

5 に答える 5

4

三項演算子を指し示すいくつかの回答が既に得られています。これが質問の半分を占めています。

誰かがこれが何を意味するのか説明できますか?value < 0 ? -value : value

その行が行っているvalueことは、それが負かどうかをチェックし、そうであれば正に変えることです。値が正の値で始まる場合は、そのままにしておきます。

.NET フレームワークには、これを行うメソッドが既に存在します: Math.Abs. したがって、その行は次のように書き直すことができます

  pri_test = Math.Abs(value);
于 2013-04-24T07:44:16.727 に答える
4

から?: Operator

condition ? first_expression : second_expression;

はまたはconditionに評価される必要があります。である場合、 が評価され、結果になります。である 場合、が評価され、結果になります。truefalseconditiontruefirst_expressionconditionfalsesecond_expression

pri_test = value < 0 ? -value : value; 

と同等です。

if( value < 0 )
{
   pri_test = -value;
}
else
{
   pri_test = value;
}
于 2013-04-24T07:40:10.753 に答える
1

ここでは、数値の絶対値を取得するために使用されます。したがって、数値が負の場合。彼らは否定された数を取り、それは正の数になります(マイナスにマイナスを掛けたものはプラスです)。

他の回答は ?: 三項演算子を扱いますが、セッターで次のようにコードを変更します。

set { pri_test = Math.Abs(value); }

はるかに読みやすい。

于 2013-04-24T07:42:13.540 に答える
1
value < 0 ? -value : value 

これに等しい

if(value < 0) 
{

   pri_test = -value;

}
else
{
   pri_test = value;
}
于 2013-04-24T07:42:23.670 に答える