HMc*_*McG 22 delphi user-interface vcl
Delphi VCL组件的"Tag"属性是否有任何特定用途?我用Google搜索了几个例子,例如,使用'color'属性或者使用值作为指针地址,但使用它是"好习惯",还是因为它与UI的程序逻辑?
Car*_*icz 36
"标签"属性作为"货物集装箱"用于您可能想要做的任何事情.
当你有很多类似的组件共享一个事件处理程序时,它经常用于事件处理程序.事件处理程序可以找到其调用者,然后查询其标记值以获取有关它应该采取什么行动的更多信息.
编辑:
示例:计算器应用程序可能会使用各自的数字标记数字按钮...愚蠢且不完整的示例,但您明白了.然后,事件处理程序可以将数字添加到显示和累加器中,直接从标记中添加,而不必弄清楚哪个按钮是做什么的.
正如其他人所说,这是一个放置任何东西的地方。通常,当通过对象引用或指针关联两个对象时,这会派上用场。标签的大小正好可以容纳一个指针,所以如果你需要,比如说,将一个对象绑定到列表框中的一个项目,它变得非常简单。
我有一些Tag属性的基本问题.不完全是这个属性本身,因为它按预期工作.
一般来说,我认为使用任何通用/通用/多用途变量作为"不良做法".它们在调试期间非常有用,但在生产/关键任务环境中非常有害.它们降低了代码的可读性和可理解性,因为没有人知道"Tag"命名属性或属性的作用.当然你知道为什么要使用这个变量.但迟早你会忘记(我知道你会)并且依靠这个值会让事情变得更复杂.这就是为什么我们应该正确地命名每个变量和属性,以帮助我们理解代码的作用.
使用Tag属性只是一种变通方法/快捷方式,可以避免实现可理解且编写良好的代码.这是实践,它让人上瘾.下次需要存储绑定到组件的新整数值时,您将使用Tag属性,而不考虑任何其他方式来存储所需的值.在Tag属性中存储指针是一个可怕的想法:每次调试指针时都必须转换此值.
告诉我:你有多少次发现自己想要在Tag属性中存储一个新值,但是你意识到这个属性已经被用于不同的目的(如果每个都有一个'Tag2'属性)零件...).
归档时间: |
|
查看次数: |
12395 次 |
最近记录: |