3

我想消除这些魔术字符串的使用:

BindingUtils.bindProperty(obj1, "propertyName", obj2, ["childObj", "anotherProperty"]);

或者

var ddl:DropDownList = new DropDownList();
ddl.labelField = "propertyName";

键入以下内容会很甜蜜:

ddl.labelField = GetPropertyName(ComplexType.propertyName);

它将允许轻松重构,并在属性名称更改时消除运行时错误。

有任何想法吗?

4

3 回答 3

4

不确定我是否正确理解您的问题。您可以轻松地在单独的类中定义静态常量以消除所有魔术字符串。

// 在类常量容器中

公共静态常量 PROPERTY_NAME:String = "propertyName";

// 在其他任何地方
ddl.labelField = ConstantContainer.PROPERTY_NAME;
于 2011-03-18T15:26:42.607 回答
1

需要“魔术字符串”。请记住,这是一种动态语言,对所有事物都有利有弊。这是其中之一。

您可以采取一些措施来限制错误,例如静态属性。

于 2011-03-18T17:16:14.140 回答
0

Stack Overflow 上关于类似主题的讨论以及您可能感兴趣的一些想法:

对象 vs 字符串 vs 枚举的使用

于 2011-03-21T13:45:02.013 回答