1

私は以前、解析などの負荷を大幅に軽減するプリプロセッサを使用して、 Cで基本的なインタプリタを作成しました。このプリプロセッサを C# で使用できるように移植したいと考えていますが、まだ C# に慣れていないため、問題が発生しています。

私の古いプリプロセッサはそれを次のようにしました

var $mine= this;
      //奇妙な意図
var $something + $a=$b;

次のようにかなり機械可読なものになります

var\0$mine\0=これ\0;\0var\0$something\0+$a\0=$b\0;\0

( \0 が NULL であるため、変数と識別子の名前を非常に簡単に取得できます)

さて、私の古いコードでは、一度に1バイトで読み取り、その空白と最後の文字などに応じて、文字を挿入するか、NULLを挿入するか、文字を無視します。

これを C# コードに変換するのに問題があります。StringBuilder クラスを使用し、Insert() を使用して一度に 1 文字を挿入しています。しかし、私の問題は、\0 を文字値として使用できないことです。その場合、識別子名がまだ非常に読みやすいようにするにはどうすればよいですか? この場合、文字列または文字列ビルダー オブジェクトの配列を使用する方がよいでしょうか?

4

1 に答える 1

6

List<string>を使用して、項目を 1 つずつリストに追加することをお勧めします。

これにより、文字列の配列のすべての使いやすさが得られますが、動的に大きくなります。ファイルを解析するための C# コードは、このアプローチを使用する場合、C コードよりもはるかに単純で理解しやすいはずです。

于 2009-08-11T01:08:43.667 に答える