C#with metro,是密封关键字的绝对要求吗?

时间:2012-11-03 14:08:13

标签: c# .net microsoft-metro

我知道你可以用c#编写metro应用程序。我的问题是每个类是否需要sealed关键字。我尝试编译一个metro应用程序,然后从类中删除了sealed关键字。它仍然编译。

那么密封关键字如何在metro应用程序和C#中使用。它背后的原因是什么?是否只有在希望使用.net语言以外的其他语言显示类时才需要它?

1 个答案:

答案 0 :(得分:2)

是的,这是绝对必要的。但仅适用于某些类,即您在WinRT上运行的其他语言所暴露的类型。换句话说,当您创建自己想要的组件时,例如,Javascript或C ++也可以使用。

对这些类有许多限制,其技术原因是WinRT在COM之上运行而COM不支持实现继承。它像一样,就像XAML类似乎使用继承一样。但这是由CLR内置的语言投影创造的错觉。这种幻觉不是双向的。

一般来说,想要这样做很少见,你需要记住几个限制。对于您自己的C#类,您编写的用于实现自己的Store应用程序的类没有此类限制,并且密封不是必需的。