gpt4 book ai didi

.net - 为什么必须为 WinMD/WinRT 组件密封公开类型?

转载 作者:行者123 更新时间:2023-12-04 12:23:39 29 4
gpt4 key购买 nike

VS 编译器不允许为 WINMD 类型库创建密封的公开类型。

为什么要设置这个限制? (我知道密封类型的优势,我的问题是关于 Win RT 组件)。

最佳答案

这是 COM 强加的架构限制。它位于任何 WinRT 类型的核心,它们派生自 IUnknown 和 IInspectable。 COM 的问题在于它只支持接口(interface)继承,不支持实现继承。这是一个强大的 COM 设计目标,实现继承充满了实现细节,包括臭名昭著的菱形继承(钻石问题)。

有一种方法可以通过委托(delegate)进行继承,派生类中的每个方法都显式调用相应的基接口(interface)方法,但是自己做很痛苦。但除此之外,Windows.UI.Xaml 类实现继承的方式。

关于.net - 为什么必须为 WinMD/WinRT 组件密封公开类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10493865/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com