众所周知,WinRT是微软组件对象模型(COM)的增强版本。除了在十年前管理分布式事务之外,我没有太多机会直接使用COM组件。我确定COM在操作系统级别内部使用很多。什么是WinRT类型展示的组件对象模型(COM)风格的行为/限制
我读到WinRT类型受到COM风格的限制。我可以通过搜索互联网上下面让一些限制:
有人可以帮助我对COM类型强加一些很好的高级别限制,或者可以指向我一些很好的资源,我可以在这里获得详尽的信息。我尝试了很多谷歌搜索,但没有任何帮助。
众所周知,WinRT是微软组件对象模型(COM)的增强版本。除了在十年前管理分布式事务之外,我没有太多机会直接使用COM组件。我确定COM在操作系统级别内部使用很多。什么是WinRT类型展示的组件对象模型(COM)风格的行为/限制
我读到WinRT类型受到COM风格的限制。我可以通过搜索互联网上下面让一些限制:
有人可以帮助我对COM类型强加一些很好的高级别限制,或者可以指向我一些很好的资源,我可以在这里获得详尽的信息。我尝试了很多谷歌搜索,但没有任何帮助。
检查Restriction and Rules part of Wikipedia article
由于Windows运行时,预计到各种语言,在基本数据类型的一些限制 存在,以便承载所有这样 语言。公共访问(方法参数,方法 返回值,属性等使用时程序员必须小心与 类型的行为
基本类型
在.NET语言和C++,一个一套丰富的数据类型的存在, 表示各种标记。
在JavaScript中,一个数只能代表最多的精度53位。
在WinRT的,唯一的缺乏NU meral数据类型是相对于.NET和C++的8位有符号整数 。当编码WinRT时,处理大数字的 必须小心JavaScript开发人员。
字符串
字符串是在.NET和JavaScript,但可变的用C++不可改变。
如C++的字符串的WinRT传递空指针被转换成 空字符串
在.NET中,空被作为字符串到WinRT的被转换成 空字符串
在传递将JavaScript作为字符串传递给WinRT将被转换为 字符串,其中包含null。这是由于JavaScript的关键字空 被表示为空对象从JavaScript
传递未定义的WinRT时
类似的结果发生的Structs
在.NET和C++,结构是值类型,并且这样一个结构体可以包含任何类型。
JavaScript不直接支持结构。
在WinRT中,仅允许使用结构体包含 具有值语义的类型,包括数字,字符串和其他结构。 不允许指针或接口引用。
参考
在.NET中,对象是通过引用传递,而数字和结构是>值传递。
在C++中,所有类型都可以通过引用或值传递。
在WinRT中,接口通过引用传递;所有其他类型都是 按价值传递。
阵列
在.NET,C++,和JavaScript数组是引用类型。
在WinRT中,数组是值类型。
活动
在.NET和C++,客户端订阅使用+ =操作事件。
在JavaScript中,addEventListener函数或 属性用于订阅事件。
在WinRT中,所有语言都可以用自己的方式订阅事件。
集合
一些.NET的集合直接映射到WinRT的集合。
WinRT向量类型与数组类似,并且数组语法用于 消耗它们。
WinRT映射类型是一个键/值对集合,并且计划为 .NET语言中的词典。
方法重载
所有的WinRT语言(.NET,C++,JavaScript的)支持过载上 参数
.NET和C++也支持重载上型。
在WinRT中,只有参数号用于重载。
非同步
所有的WinRT方法被设计成使得花费的时间比 50毫秒的任何方法是一种异步方法。
用于区分异步方法的已建立的命名模式是 异步。对于完整的运行时库,所有有机会持续时间超过50毫秒的所有方法仅作为异步方法实现。