或者说你考虑进了一个误区,如果a你是自己实现的,你完全没有必要这么做;
class A{
B _b;
A(B b)
{
_b=b;
}
public void Show(){_b.show(); }
}
interface B{ void show();}
class C:B
{
public void Show(){....};
}
你在你的项目调用的时候调用 new A(new C()).show();
这个跟你修改你的show实现来说是两码事了,你修改show,你的c编译的dll就得固定;通过实例化来传递参数一般就是我们用来进行扩展的时候用的