この記事では、ILGenerator を使用して C# で関数を動的に生成する簡単なコードを主に紹介します。必要な友人はそれを参照してください
ゲームサーバーには常に多くの設定ファイルを読み込む必要があり、これらの設定ファイル: * 必須 それ以外の場合は、単なる文字列または数値の束である弱い型に作成され、エラーは表示されません (再チェックが必要です) * それ以外の場合は、強い型に作成されます各タイプはそれ自体で解析する必要があります
私は個人的には後者を好みます。前者のLoadConfigのコードはシンプルですが、ロジックを書くときのコードは単純ではありません
class Config1 : public IConfig { public void Fill(EntryLine& line); int32_t param1; string param2; std::vector<int32_t> param3; }; void Config1::Fill(EntryLine& line) { this->param1 = line.ReadInt32(); this->param2 = line.ReadString(); this->param3 = line.ReadVectorInt32(); }
近似的な充填関数は上に書いたとおりです。 、ただし、ReadInt32 関数は架空のものであり、自分で実装する必要があります (うーん)
この種のコードを書くのは非常に面倒で、あまり書きたくないのがこの記事の理由です。
C# には XML 逆シリアル化があり、次のクラスを定義します。class Config1 { int32 param1; string param2; int[] param3; } XmlSerializer serializer = new XmlSerializer(typeof(Config1)); var obj = (Config1)serializer.Deserialize(stream);
以上がC# で ILGenerator を使用して関数のインスタンスを動的に生成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。