我有一堆有趣的程序集想要组合在一起:
-
通用汇编(C# 或 C++-CLI)
public class MyBase
{
public void MethodA()
{ ... }
private void MethodB()
{ ... }
protected virtual MethodC()
{ ... }
}
-
测试代码程序集(全部 C++-CLI)
public class MySpecific : public MyBase{
protected: override MethodC();
};
-
测试模拟器(C#)
MySpecific obj = new MySpecific();
obj.MethodC();
虽然程序集 1 可以是 C++-CLI 以使事情更简单,但我真的很想将程序集 3 保留在 C# 中。这主要是一个练习,看看是否可以在任一方向上完成继承,但我也有一个实际案例,该堆栈很有用。
我发现的第一个问题是 C++-CLI 程序集无法编译,因为它无法将 MyBase 识别为类,即使我引用了程序集 1 以及看起来正确的命名空间。
如何编写语言可移植的类?
我认为你必须将 MySpecific 声明为托管类,如下所示:
public ref class MySpecific : public MyBase { ... }
有关详细信息,请参阅 CLI/C++ 文档。如果不进行修改,您将无法使用旧的 C++ 代码,但我认为您想到的一切都应该是可能的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)