【发布时间】:2013-12-10 14:41:53
【问题描述】:
假设我有两个类,ClassA 和 ClassB 如下:
class ClassA
{
public void MyFunctionA(ClassB classB)
{
classB.MyActionB = () => this.MySecretFunctionA(3); // "Hard coded 3"
}
private void MySecretFunctionA(int anInt)
{
Console.WriteLine(anInt.ToString());
}
}
class ClassB
{
public Action MyActionB;
public void MyFunctionB()
{
MyActionB();
}
private void MySecretFunctionB()
{
// Here
}
}
ClassB 是否有可能在运行时准确地“知道” MyActionB 在被调用时会做什么?例如,ClassB 是否可以在运行时再次提取“3”? (参见“硬编码 3”注释。)
ClassA 和 ClassB 位于不同的程序集中,如果有区别(我不这么认为)ClassB 的程序集是在运行时加载的。
在标题中,我建议反思,但如果在这种情况下它不是适当的术语,我会编辑它。如果可能的话,只是一个想法会很好。谢谢。
【问题讨论】:
标签: c# reflection delegates runtime