21

我真正喜欢 AS3 而不是 AS2 的一件事是它增加了多少编译时类型检查。然而,它似乎有点缺乏可用的类型检查枚举结构。在 AS3 中执行自定义枚举类型的好(最佳/公认)方法是什么?

4

5 回答 5

17

跳跃后你的回答:-)

带类的枚举

于 2008-12-01T00:16:43.280 回答
15

只是想分享我的方式

于 2008-12-02T22:29:35.227 回答
1

我知道,这有点过时了,并不能完全回答你的问题,但你可能想看看Haxe。您还可以使用它为您生成 AS3,此外还有许多其他使用它的原因。但这真的会跑题...

于 2009-09-29T11:23:09.613 回答
1

我最近发现as3commons 库有一个很好的基础帮助类Enum用于枚举实现。

于 2012-11-10T05:04:17.873 回答
1

为了成为真正的枚举,它需要两者:

  • 强制类型安全
  • 防止恶意实例

很少有简单的解决方案可以两者兼得,而且 IMO 的基类过于复杂。

我目前最喜欢的是以下风格 - 安全简单,不应该混淆任何人:

public final class FruitEnum {
    private static const CREATE:Object = {};

    public static const APPLE:FruitEnum = new FruitEnum(CREATE);
    public static const ORANGE:FruitEnum = new FruitEnum(CREATE);
    public static const BANANA:FruitEnum = new FruitEnum(CREATE);

    public function FruitEnum(permission:Object) {
        if (permission !== CREATE){
            throw new Error("Enum cannot be instantiated from outside");
        }
    }
}

警告:我见过很少的情况,变量初始化在设置之前读取枚举 const ,但在这些情况下,问题同样适用于其他基于 const 的枚举仿真。

于 2013-01-04T10:40:32.577 回答