1

私の XNA ゲームでは、SpriteBatch を拡張して一部の関数をオーバーライドし、必要な機能を実行し、独自の関数をいくつか追加しました。

「SpriteBatch」のすべてのインスタンスを「MySpriteBatch」に変更することなく、他のメンバーがこのクラスを使用するように強制したかったのです。

ファイルでは、次のようなことができます。

using SpriteBatch = MySpriteBatch; // Overrides the Microsoft Spritebatch

ただし、これは、これを含める必要があるすべてのファイルに対するものです。これを SpriteBatch 以外の目的で行った場合、または詳細な型 (Project.Class.ThisEnum) を定義したい場合は、さらに煩わしくなります。

これらの名前をプロジェクト全体で一度グローバルに定義する方法はありますか?

以前、C++ プロジェクトで、すべてのファイルにプリコンパイル済みヘッダーが含まれていて、内部に次のようなすべての名前変更が含まれているこのようなものを見たことがあります。

#define INT int //INT is now the same as int
4

1 に答える 1

4

C#でこれを行う「グローバル」な方法はありません。

そうは言っても、実行していることによっては、拡張メソッドを使用して目標を達成できる場合があります。これにより、実際に独自の型を作成しなくても、型に「メソッドを追加する」という錯覚を与えることができます。

于 2012-03-09T02:02:43.083 に答える