[英]Can a C# class inherit from a C++/cx class
我在 c++/cx(UWP 项目)的“windows 运行时组件”项目中定义了一个 class。 我想在 c# UWP 项目中继承 class
namespace WindowsRuntimeComponent1
{
public ref class NetCapability
{
protected:
virtual Platform::String^ GetName() { return L"NetCapability"; }
virtual void OnConnected() {};
virtual void OnDisconnected() {};
};
}
当 C# class 从NetCapability
继承时,编译它并发生错误
WindowsRuntimeComponent1::NetCapability':WinRT 的“公共参考类”必须是密封的或派生自现有的未密封 class
并且虚拟 function 不能公开。
所以 c# class 不能从 c++/cx 公共 class 继承?
不,它不能,直接。 虽然在某些情况下有模仿 inheritance 的间接方法。 本质上,这涉及创建一个 C# class 包装由 C++ ZA2F2ED4F8EBC04CBB614C21A29 公开的方法,所以它不是一个干净和简单的方法。 请参阅: https://devblogs.microsoft.com/cppblog/inheriting-from-a-native-c-class-in-c/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.