我已经使用FxCop一段时间了,它建议的几乎所有规则都有意义,但是当涉及到命名控件时,它会抛出一个摇摆不定的。
我倾向于这样命名:
btnSavePerson
lblForename
txtPostcode
ddlEthnicity
等等。
现在,我只使用前缀作为控件,我发现识别它们有点痛苦。我在其余所有代码中都没有这个问题,所以对于代表一个人的类,我会有类似的东西:
public class Person
{
private string forename;
public string Forename
{
get;
set;
}
}
我觉得我有两种不同的命名约定,FxCop抱怨控件名称的前缀,我不喜欢命名约定。
那么人们如何命名表单上的控件?
答案 0 :(得分:2)
我实际上以与您相同的方式命名控件。我发现它提供了一种从后面的代码中识别控件的更快方法。如果你真的不想坚持这种约定,包括某种前缀可能会有所帮助,尤其是在大型表格上。例如,如果您正在注册用户,获取其CC信息和结算信息,则使用“Bill”为结算信息输入添加前缀将提供与“txt ...”相同的结果。
对我来说这是一个速度的事情。如果没有前缀,当我在同一页面上处理10或20个其他人时,我会轻易忘记我所谓的输入框。当我忘记时,我必须切换回设计视图,这在VS中并不好玩。
答案 1 :(得分:2)
我总是用匈牙利语表示我的表格控件,并用FxCop和StyleCop告诉我的地狱。
说我有一个包含电子邮件,姓名和消息的联系表格。我们为我们的dev使用MVP模式,所以我将实现一个包含三个属性的视图,Email,Name和Message,所以我不能将它们用作控件名称。
我不喜欢命名控件EmailTextBox
,因为我没有看到它比执行txtEmail
更好。毕竟,你仍然包括带有名字的类型,如果它在前面(和缩写)或后面有什么区别?
我喜欢使用像txt
这样的前缀,然后所有我的文本框在智能感知窗口中被分组。如果我有十几个表单字段而且我忘记了我命名的字段,那么只需键入txt
并滚动列表即可。比从intellisense顶部开始或切换回设计表面容易得多。
那就是说我永远不会永远使用匈牙利符号来表示字段。表单字段通常不会成为公共API,所以我不关心它们。
答案 2 :(得分:0)
我不使用匈牙利语前缀,我不认为它们比变量名或公共属性更有价值,我当然不会在那里使用它们。
答案 3 :(得分:0)
通常我会使用识别名称,后跟控件类型。例如'ForenameTextbox','SubmitButton'。
答案 4 :(得分:0)
我遵循你所采用的相同方法(如图像按钮的“imgBtnSaveFinal”),但我所知道的是,这场辩论可以永远持续下去,我觉得在决定我们是否应该使用众多标准之一使用它很舒服,以及将来对我们的符号有多大用处,即如果符号对任何人都没有意义,使用它也没有多大意义!