1

「SetData」メソッドを使用して値をスレッドに関連付ける方法を探しているわけではありません。

呼び出し元のメソッドのスコープ中にのみ存在するある種のデータを保存する必要があります。これは、直接の親またはスタックで行われる他の呼び出しである可能性があります。例えば:

void SomeMethod()
{
   string someInfo = "someInfo";
   SomeOtherMethod();   
   object data = GetDataOnCurrentScope("someKey");
}

void SomeOtherMethod()
{
   SetDataOnParentScope("someKey", somevalue);
}

この場合、「someInfo」ローカル変数と「someKey」キーを持つデータセットの両方が、「SomeMethod」が戻った後に消えます。このようなことは可能ですか?これはスタックのルールに反するかもしれませんが、誰かがアイデアを持っているかどうかは誰にもわかりません...

obs: 現在、唯一の方法は、すべてのメソッドのコール スタックの先頭で、コンパイラに辞書への参照を宣言させることだと思います。そのディクショナリは、メソッドが返されたときにガベージ コレクションの対象になります。

4

2 に答える 2

1

個人的には、あなたが提供している例では、これがどのように役立つかわかりません。実装の観点からは、ロイヤル PITA になります。

ここで説明しているのは値を返す関数なので、戻り値の型を持たず、設計された方法でメソッドを使用しないのはなぜですか?

于 2010-05-11T15:22:45.200 に答える
0

あるメソッドから別のメソッドにスコープを設定したい場合は、通常、最初のメソッドでオブジェクトを作成し、それをパラメーターとして 2 番目のメソッドに渡すか、最初のメソッドが必要とするオブジェクトを 2 番目のメソッドに返させます。誰が最初にオブジェクトを必要とするかによって異なります。

于 2010-05-11T15:24:24.527 に答える