目录
索引 🔎︎

# CreateUnoValue 函数

返回一个对象，该对象表示一个涉及 Uno 类型系统的精确类型值。

该对象被传送到 Uno 时，将自动转换成一种相应的 Any 类型，此类型必须由全限定的 Uno 类型名称来指定。

LibreOffice API 经常使用 Any 类型。它与其他环境中的 Variant 类型相对应。Any 类型具有一个任意类型的 Uno，可用于一般的 Uno 接口。

## 语法:

    oUnoValue = CreateUnoValue( "[]byte", MyBasicValue ) ' 获取字节序列。

如果 CreateUnoValue 无法转换成指定的 Uno 类型，将发生错误。转换时使用了 TypeConverter 服务。

此函数适用于 Basic 到 Uno 类型的默认转换机制效果不佳的场合。试图访问 LibreOffice Basic 中基于一般 Any 类型的接口，例如 XPropertySet::setPropertyValue (Name, Value ) 或 X???Container::insertBy??? (???, Value) 时，可能出现这种情况。由于这些类型仅在相应的服务中进行了定义，因此 Basic 运行时不能识别这些类型。

在这种情况下，LibreOffice Basic 将为要转换的 Basic 类型选择最匹配的类型。但是如果选择了错误的类型，就会发生错误。您可以使用 CreateUnoValue() 函数为未知的 Uno 类型创建一个值。

此外，还可以使用此函数来传送非 Any 值，但是建议您不要这样做。如果 Basic 知道目标类型，使用 CreateUnoValue() 函数只会导致额外的转换操作，从而降低 Basic 的执行速度。