0

Unity の C# でコードを式に変換する方法についてのアイデアを探しています。ステートメントの基本的なリストは次のとおりです。

簡単なステートメント:

  • 割り当て: A:= A + 5
  • 呼び出し: CLEARSCREEN()
  • 戻る: 5 を返します。

複合ステートメント:

  • if-statement: if A > 3 then WRITELN(A) else WRITELN("NOT YET"); 終わり
  • switch-statement: switch (c) { case 'a': alert(); 壊す; ケース 'q': 終了 (); 壊す; }
  • while-loop: while NOT EOF DO 開始 READLN 終了
  • do-loop: do { 計算(&i); } ながら (i < 10);
  • for-loop: for A:=1 to 10 do WRITELN(A) end

これらのステートメントを置き換える式は、たとえば And 演算子 (式 1 && 式 2 && .. 式 N) を使用して連鎖させる必要があるため、実行順序が尊重されます。?: 演算子も使用できます。

割り当て

このステートメントがある場合:

int a = 100;

次のように変換できます。

((a = 100) == a)

IL コードでは比較が最適化されていないため、まだ完全ではありません。私も試しました:

((a = 100) is int)

これにより警告がスローされ、比較は最適化されますが、割り当ても削除されます。ILコードでのみ割り当てを生成する他のアイデアはありますか?

電話

呼び出しは自動的に式に変換されますよね? まあ、正確ではありません。void 関数をどのようにチェーンしますか?

また、参照によってパラメーターを渡す場合は、式の外部に変数が必要になります。

戻る

これは直接変換されます:

return 5;

(5)

If ステートメントと Switch ステートメント

?: 演算子はそれらを置き換えます:

if (a == 5) { b = "yes"; } else { b = "no"; }

((a == 5) ? "yes" : "no")

While、Do、および For ループ

反復回数が固定されている場合は、ここでループの巻き戻しを使用できます。

4

0 に答える 0