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