Foo*_*tor 5 c# inheritance c++-cli
我有一堆有趣的组件我想要组合在一起:
通用程序集(C#或C++ - CLI)
public class MyBase
{
public void MethodA()
{ ... }
private void MethodB()
{ ... }
protected virtual MethodC()
{ ... }
}
Run Code Online (Sandbox Code Playgroud)测试代码程序集(所有C++ - CLI)
public class MySpecific : public MyBase{
protected: override MethodC();
};
Run Code Online (Sandbox Code Playgroud)测试模拟器(C#)
MySpecific obj = new MySpecific();
obj.MethodC();
Run Code Online (Sandbox Code Playgroud)虽然程序集1可以是C++ - CLI来保持简单,但我真的希望将程序集3保存在C#中.这在很大程度上是一个练习,看看是否可以在任何一个方向上完成继承,但我也有一个真实的情况,这个堆栈是有用的.
我发现的第一个问题是C++ - CLI程序集不能编译,因为它不能将MyBase识别为类,即使我有一个对程序集1的引用,看起来像是正确的名称空间.
如何编写语言可移植的类?
我认为你必须将 MySpecific 声明为托管类,如下所示:
public ref class MySpecific : public MyBase { ... }
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请参阅 CLI/C++ 文档。如果不进行修改,您将无法使用旧的 C++ 代码,但我认为您想到的一切都应该是可能的。