正如你所描述的那样,在WinForms,
WPF和Silverlight中遇到并使用的Tag
属性的最常用的是指示控件所关联的真实数据.这对于ListViewItem实例或
自动生成的
用户界面尤其有用,您希望对只有目标数据不同的多个对象(即要执行的操作保持不变)使用相同的事件处理程序.
但是,我还使用标签来存储枚举值(尽管您应该避免使用值类型,因为将值分配给Tag属性时会导致装箱)或字符串,然后用于确定需要执行的操作而不是执行它的数据,在一个特定的用途中,我存储了一个代理,以便我可以自动生成一些按钮并将它们的处理程序嵌入Tag中(处理程序信息以数据驱动的方式提供).
我相信还有很多其他的方法可以使用Tag和其他许多方法来替代Tag的用法,而且这种方式更加强大.