クラス参照がnullであるかどうかは気にしないことをプログラムに伝える方法はありますか?例えば:
if (playermove[i].name == "punch" || ispunchactivated == true)
{
Do the punch;
}
なぜ彼はplayermove(nullになる可能性があります)を検索し、nullの例外エラーを表示するのですか?ispunchactivateがtrueであるかどうかは本当に気にしません。
ありがとう。
2つの条件を逆にすると、次のようになります。
ispunchactivated /*== true*/ || playermove[i].name == "punch"
// this isn't necessary
次に、最初のものが真の場合、2番目のものはチェックされません。
ただし、がfalseの場合にnullにならないことがわかっている 場合を除き、実際にはnullチェックも行う必要があります。そうしないと、例外が発生します。playermove[i]
ispunchactivated
ispunchactivated ||
(playermove[i] != null && playermove[i].name == "punch")
最初にnullをチェックするだけです。
ここにショートカットはありません。
if (playermove == null || playermove[i].name == "punch" || ispunchactivated == true)
{
Do the punch;
}
if条件は次のように変更できます。
if (ispunchactivated == true || (playermove!=null && playermove[i].name == "punch" ))
これを試して、
if ((ispunchactivated == true) || (playermove[i] != null && playermove[i].name == "punch" ))
{
Do the punch;
}
条件を交換するだけで、短絡するとそれが可能になります。
if (ispunchactivated == true || playermove[i].name == "punch")
{
Do the punch;
}
playermove[i]
ispunchactivated
がfalseの場合にのみ評価されます。ispunchactivated
そうは言っても、がfalseでnullの場合でも、nullポインタ例外が発生する可能性がplayermove[i]
あります。
次のように条件を変更します。
if(playermove !=null && playermove[i] != null)
{
if (playermove[i].name == "punch" || ispunchactivated == true)
{
Do the punch;
}
}