如何在Flex项目中执行以下操作?
package{
#ifdef BAR
class Foo{
...implementation of Foo....
}
#else
class Foo{
...alternative implementation of Foo
}
#endif
}
如果我尝试使用以下编译器语句执行此操作 -define CONFIG :: BAR,是的 -define CONFIG :: NOBAR,false
以这种方式编程:
package{
CONFIG::BAR{
class Foo{
...implementation of Foo....
}
}
CONFIG::NOBAR{
class Foo{
...alternative implementation of Foo
}
}
}
然后flash builder给我一个编译错误:
1018: Duplicate class definition: Main
如何解决?
答案 0 :(得分:4)
看看Using conditional compilation。看起来您不需要将类放在{ }
块中。
如果文档是正确的,这应该有效:
package{
CONFIG::BAR
class Foo{
...implementation of Foo....
}
CONFIG::NOBAR
class Foo{
...alternative implementation of Foo
}
}
答案 1 :(得分:-2)
通常,如果你想做这样的事情,而不是用两种不同的方式定义类,你可以定义同一个类的两个不同的子类(或者如果需要的话,实现相同接口的两个不同的类)。然后在#ifdef子句中,将正确的子类分配给引用变量。然后其余的类将引用该变量,并获得所需的类定义。