获取内存中特定类对象的引用

时间:2014-10-31 10:15:36

标签: c#

有没有办法检索对特定类实例的引用?

我知道类的名称,我知道它在内存中只有一个实例。

我需要这样做才能调用该实例的方法,但出于设计原因,我无法将该方法定义为' static'。

例如,我想做类似的事情:

public static void Main()
  ...
  object temp= GetCurrentInstanceOf("ClassToUse");
  temp.MethodINeed();
  ...
}

1 个答案:

答案 0 :(得分:2)

不,没有办法做到这一点。

您可以在班级中拥有静态变量,以保留对最近创建的实例的引用"可用 - 这当然会防止垃圾收集。或者你可以让这个类成为一个单独的 - 一个类似的解决方案,但只允许创建的单个实例

但理想情况下,您只需更改设计,即可以不同方式为您提供正确的实例。依赖注入通常是这里的前进方向,但如果没有更多细节,就不可能准确地说出它在你的情况下会如何发展。

任何依赖"全球状态"这样就变成了可测性的痛苦。我强烈敦促您重新考虑整体设计和数据流,而不是将统计数据用于全局状态。