1

Lua コードを C# に移植する簡単な方法はありますか?

おそらく最大の問題は、いくつかの辞書できちんとテーブルを移植することでしょう。

誤解を避けるために、いいえ、組み込みの Lua を自分のプログラムで使用することはできません

4

4 に答える 4

2

Lua のような非常に動的な言語で設計されたコードは、C# のような静的な言語で意味をなすようにかなりのリファクタリングが必要になります。この 2 つは根本的に異なる目的を果たします。基本的な数値/文字列操作など、言語の最も基本的な機能のみを使用しない限り、現実的には、そのようなコードを最初から書き直す必要があります。

于 2010-05-12T17:27:42.683 に答える
1

それを行う簡単な方法はありません。

于 2010-05-12T17:10:10.673 に答える
0

何を達成したいですか?lua ファイルを C# コードに変換します。広範囲に使用したい場合や、元のコードと同様のことを行うコードが必要な場合に使用します。

最初のタイプの変換の場合、答えは非常に難しいですが、不可能ではないということです。コードを解析し、C# で同じ (動的) 機能を再作成する必要があります。LinFu.Reflection のようなフレームワークは、CLR にいくつかの動的機能を追加するため、ここで役立ちます。

2 番目のタイプについては、lua バイトコードを元のコードではなく C# に変換することを考えています。主に lua には多くのオペコードがないため (私の記憶が正しければ約 30)、これはそれほど難しくありません。これらのオペコードから変換するのが最も難しいのは、ロジック演算子とジャンプ演算子です (C# には goto がないため) が、フロー演算子をそのまま維持し (C# に変換すると、多かれ少なかれ達成可能になります)、間にコードをコンパイルし、結果のバイトコードを C# に変換する必要があります。もちろん、この方法では、元のコードの可読性が大幅に失われ、それを維持するのがはるかに難しくなります。

また、私がここに書いたこれら 2 つのエッジ ケースの間で解決策を見つけようとするかもしれません。一部の構造は簡単に移植できますが (主にループと単純な算術演算子)、テーブル処理のためにオペコード表現にフォールバックします。

于 2010-05-12T17:52:56.527 に答える