2011-02-04 4 views
1

私がデリゲートインスタンスを読み込んでいるものは、常にクラスとして入力クラスまたはクラス内で定義されています。 私はなぜ委任インスタンスを独立して定義できないのか理解できませんでした。デリゲートインスタンスをクラス外で定義できますか?

おかげ

+1

C#のような純粋なOOPであるはずなので、すべてがクラスに含まれています。 –

+0

私は覚えていることから、グローバルスコープを明示的に入れることができます。 –

答えて

0

デリゲート型であり、あなたは(グローバル名前空間を含む)名前空間スコープでそれを定義することができます。

デリゲートは参照型なので、デリゲートインスタンスは常にマネージ(ガベージコレクション)ヒープに配置されます。デリゲートインスタンスは、gcnew演算子、the Delegate::CreateDelegate method、またはスタックセマンティクス構文(C++/CLIのみ)を使用して作成できます。

永続バインドされた参照、ヒープ上のインスタンス、およびIDisposable::Disposeへの自動呼び出しをラップするスタックセマンティクス構文変数を含む参照変数は、管理対象型のインスタンスまたは静的メンバーとして存在できますが、自動ローカル変数、静的ローカル変数、または(C++/CLIでは)グローバル(名前空間スコープ)変数として使用できます。

関連する問題