由于 Windows 运行时被投射到各种语言,一些
存在对基本数据类型的限制,以便托管所有此类
语言。程序员必须小心那些人的行为
与公共访问一起使用时的类型(对于方法参数,方法
返回值、属性等。
基本类型
在 .NET 语言和 C++ 中,存在一组丰富的数据类型,
代表各种数字。
在 JavaScript 中,数字最多只能表示 53 位的精度。
在 WinRT 中,唯一缺少的数字数据类型是 8 位有符号整数
相对于 .NET 和 C++。 JavaScript 开发者必须小心
在为 WinRT 编码时处理大数字。
字符串
字符串在 .NET 和 JavaScript 中是不可变的,但在 C++ 中是可变的。
由 C++ 作为字符串传递给 WinRT 的空指针被转换为
空字符串
在 .Net 中,作为字符串传递给 WinRT 的 null 被转换为
空字符串
在 JavaScript 中,作为字符串传递给 WinRT 的 null 被转换为
带有单词 null 的字符串。这是由于 JavaScript 的关键字 null
被表示为一个空对象
将 undefined 从 JavaScript 传递给 WinRT 时会出现类似的结果
结构
在 .NET 和 C++ 中,结构体是值类型,这样的结构体可以
包含任何类型。
JavaScript 不直接支持结构。
在 WinRT 中,仅允许将结构用于包含的类型
具有值语义,包括数字、字符串和其他结构。
不允许使用指针或接口引用。
参考文献
在 .NET 中,对象通过引用传递,而数字和结构>通过值传递。
在 C++ 中,所有类型都可以通过引用或值传递。
在 WinRT 中,接口是通过引用传递的;所有其他类型都是
按值传递。
数组
在 .NET 中,C++ 和 JavaScript 数组是引用类型。
在 WinRT 中,数组是值类型。
活动
在 .NET 和 C++ 中,客户端使用 += 运算符订阅事件。
在 JavaScript 中,addEventListener 函数或设置 on
属性用于订阅事件。
在 WinRT 中,所有语言都可以使用自己的方式订阅事件。
收藏
一些 .NET 集合直接映射到 WinRT 集合。
WinRT Vector 类型类似于数组,数组语法用于
消费它们。
WinRT Map 类型是一个键/值对集合,并被投影为
.NET 语言字典。
方法重载
所有 WinRT 语言(.NET、C++、JavaScript)都支持重载
参数
.NET 和 C++ 也支持类型重载。
在 WinRT 中,只有参数号用于重载。
异步
所有 WinRT 方法的设计都使得任何方法花费的时间都超过
50 毫秒是一种异步方法。
已建立的区分异步方法的命名模式是
异步。对于完整的运行时库,所有有机会
持续时间超过 50 ms 仅作为异步方法实现。