Bra*_*rad 16 .net c# .net-2.0 winforms
我注意到带控件的Tag属性.是否可以使用它来引用我的自定义对象,或者我应该远离它,因为它需要装箱和拆箱,这被提到是不安全的并且不推荐.
TreeNode tn = new TreeNode ();
CustClass o = new CustClass()
o.number = 123;
tn.Tag = o;
class CustClass
{
public int number {get; set;}
}
Run Code Online (Sandbox Code Playgroud)
Tim*_*mwi 34
该Tag物业的目的是让您将其用于任何您想要的目的.您可以安全地存储您想要的任何内容.
习惯上声明一个专门用于存储在Tag属性中的类(就像您使用的那样CustClass).但是如果你只需要一个值,那么int直接存储它就没有错.
你在哪里读到拳击/拆箱是"不安全的"?这绝对不是真的.(有些人声称它效率低下,但即便如此也是如此.)此外,你的代码甚至根本不包含拳击的例子.CustClass是一种参考类型.仅在分配时将值类型装箱object.
我认为按照您想要的方式使用它不会成为装箱或拆箱问题。据我所知,该 Tag 属性仅供程序员使用,因此您可以按照您需要的方式使用它。
请参阅Control.TagMSDN 上的属性以获取有关如何使用此属性的更多参考。
例如,我曾经使用它在 Windows 窗体应用程序中向用户输入指令。当控件 GotFocus 事件触发时,指令 Label.Text 属性被分配了包含指令字符串的控件 Tag 属性的值。
| 归档时间: |
|
| 查看次数: |
35318 次 |
| 最近记录: |