繁体   English   中英

C# class 能否继承自 C++/cx class

[英]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 继承?

您应该通过 c++/CLI 方法公开它。

检查此链接

干杯,

不,它不能,直接。 虽然在某些情况下有模仿 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM