我为这个模糊的标题道歉。我正在努力寻找更好的方法:
public void DoSomething(Textbox tb)
{
switch(tb.Name)
{
case "tbOne":
// Do something
break;
case "tbTwo":
// Do something else
break;
}
}
我不喜欢硬编码文本框名称,因为它们可以更改和破坏我的代码。关于如何更好地做到这一点的任何想法?
答案 0 :(得分:2)
您可以使用Textboxes的Tag属性,它可以保存您想要的任何内容(任何对象,字符串,int,...)。
在许多情况下,您可能会发现您不需要做的事情。如果你在问题中添加你想要实现的目标,你可能会得到更好的建议。
答案 1 :(得分:1)
你真的不需要硬编码,只需要这样做而不是你拥有的:
public void DoSomething(Textbox tb)
{
if(tb == tbOne)
{
}
else if (tb == tbTwo)
{
}
}
这样一来,如果他们改变你就会得到编译时异常=)。
答案 2 :(得分:0)
依赖关系图中的某个位置应该有一个UserData
条目,但在MSDN上找不到它。
如何使用Tag
属性(see here)存储可用于识别的值?