预定义值

From Apache OpenOffice Wiki
Jump to: navigation, search


API 提供许多预定义值,用作方法参数,或作为方法的返回值。在 UNO IDL 中,预定义值有两种不同的数据类型:常数和枚举。


const

const 定义有效 UNO IDL 类型的命名值。值取决于指定的类型,可以是常值(整数、浮点数或字符)、另一个 const 类型的标识符或包含以下运算符的算术项:+-*/~&|%^<<>>


由于可以在 const 中广泛选择类型和值,因此,const 有时用于生成对合并的值进行编码的位矢量。

  const short ID = 23;
  const boolean ERROR = true;
  const double PI = 3.1415;

通常情况下,const 定义是常数组的一部分。


constants

constants 类型定义的是包含多个 const 值的一个命名组。constants 组中的 const 用组名称加上 const 名称表示。在下面的 UNO IDL 示例中,ImageAlign.RIGHT 指的是值 2:

  constants ImageAlign {
      const short LEFT = 0;
      const short TOP = 1;
      const short RIGHT = 2;
      const short BOTTOM = 3;
  };


enum

enum 类型与 C++ 中的枚举类型相当。它包含一个已排序列表,列表中有一个或多个标识符,代表 enum 类型的各个值。默认情况下,值按顺序编号,以 0 开头,每增加一个新值就增加 1。如果给某个 enum 值指定了一个值,则没有预定义值的所有后续 enum 值都以此指定值为基准来获得值。

  // com.sun.star.uno.TypeClass
  enum TypeClass {
      VOID,
      CHAR,
      BOOLEAN,
      BYTE,
      SHORT,
      ...
  };
 
  enum Error {
      SYSTEM = 10, // value 10
      RUNTIME, // value 11
      FATAL, // value 12
      USER = 30, // value 30
      SOFT // value 31
  };

如果调试中使用了 enum,就应该能够通过操作一个 enum 在 API 参考书中的位置来获得该 enum 的数值。但是,不要使用文字数值取代程序中的 enum。


Documentation caution.png 指定和发布某个 enum 类型后,可以确定以后不会扩展该类型,因为这样做会破坏现有的代码。但是,可以将新的 const 值添加到一个常数组。
Content on this page is licensed under the Public Documentation License (PDL).
Personal tools
In other languages