ActionScript 3 对象的属性名称为字符串?

发布于 2024-10-24 08:19:09 字数 442 浏览 2 评论 0原文

我想消除在这些中使用魔术字符串

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

或者

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

只输入类似以下内容会很方便:

ddl.labelField = GetPropertyName(ComplexType.propertyName);

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

有什么想法吗?

I want to eliminate usage of magic strings in these:

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

or

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

it would be sweet to just type something like:

ddl.labelField = GetPropertyName(ComplexType.propertyName);

It would allow easy refactoring and would eliminate runtime errors when property name changes.

Any ideas?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

黎夕旧梦 2024-10-31 08:19:09

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

// In class ConstantContainer

public static const PROPERTY_NAME:String = "propertyName";

// In anywhere else
ddl.labelField = ConstantContainer.PROPERTY_NAME;

Not sure whether I understand your problem correctly. You can easily define static constants in a separate class to eliminate all magic string.

// In class ConstantContainer

public static const PROPERTY_NAME:String = "propertyName";

// In anywhere else
ddl.labelField = ConstantContainer.PROPERTY_NAME;
萌吟 2024-10-31 08:19:09

需要“魔法弦”。请记住,这是一种动态语言,凡事都有优点和缺点。这是这些缺点之一。

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

'magic strings' are needed. Remember that this is a dynamic language that has pros and cons to everything. This is one of those cons.

There are a few things you can do to limit error like static properties.

寒江雪… 2024-10-31 08:19:09

Stack Overflow 关于类似主题的讨论,其中包含一些您可能感兴趣的想法:

使用对象、字符串、枚举

The Stack Overflow discussion on the similar topic with some ideas that can be of interest to you:

Use of object vs string vs enum

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文