【发布时间】:2017-03-23 18:26:31
【问题描述】:
这两项检查都有效:
If cntrl.ID.ToString().Contains("ckbx") Then
If cntrl.ClientID.ToString().Contains("ckbx") Then
查询 ClientID 优于 ID 有什么好处吗?
顺便说一句,我直接分配给 ID,而不是分配给 ClientID(如果可能的话)。该代码是:
Dim chk = New CheckBox()
chk.ID = "ckbx" + i.ToString()
chk.Checked = True
formCustCatMaint.Controls.Add(chk)
【问题讨论】:
-
它们都是不好的代码气味。如果您必须根据魔术字符串进行匹配,您可能需要重新考虑您的设计。
-
也许你是对的,但是对前置条件的测试会验证只有我动态生成并给出前置值的复选框被找到并采取行动。
-
所以你说两者都有效?在您的测试中,两者的表现都一样吗?那为什么要问一个广泛开放的、主要基于意见的问题呢?
-
我发现没有区别(性能方面);我想知道是否有人知道使用任一选项的“陷阱”。