有没有办法检索对特定类实例的引用?
我知道类的名称,我知道它在内存中只有一个实例。
我需要这样做才能调用该实例的方法,但出于设计原因,我无法将该方法定义为' static'。
例如,我想做类似的事情:
public static void Main()
...
object temp= GetCurrentInstanceOf("ClassToUse");
temp.MethodINeed();
...
}
答案 0 :(得分:2)
不,没有办法做到这一点。
您可以在班级中拥有静态变量,以保留对最近创建的实例的引用"可用 - 这当然会防止垃圾收集。或者你可以让这个类成为一个单独的 - 一个类似的解决方案,但只允许创建的单个实例
。但理想情况下,您只需更改设计,即可以不同方式为您提供正确的实例。依赖注入通常是这里的前进方向,但如果没有更多细节,就不可能准确地说出它在你的情况下会如何发展。
任何依赖"全球状态"这样就变成了可测性的痛苦。我强烈敦促您重新考虑整体设计和数据流,而不是将统计数据用于全局状态。