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

如果您想要从一个方法到另一个方法而不是其他地方的东西,您通常会在第一个方法中创建一个对象并将其作为参数传递给第二个方法,或者让第二个方法返回第一个方法所需的对象。这取决于谁首先需要该对象。

于 2010-05-11T15:24:24.527 回答