【问题标题】:What are your thoughts on naming controls in asp .net web forms?您对 asp .net Web 表单中的命名控件有何看法?
【发布时间】:2009-02-13 09:12:33
【问题描述】:

我使用 FxCop 已经有一段时间了,它建议的几乎所有规则都有意义,但是在命名控件时它会出现问题。

我倾向于这样命名:

btnSavePerson
lblForename
txtPostcode
ddlEthnicity

等等。

现在,我只对控件使用前缀,我发现识别它们有点麻烦。我的所有其他代码都没有这个问题,所以对于代表一个人的类,我会有这样的东西:

public class Person
{
    private string forename;
    public string Forename
    {
        get;
        set;
    }
}

我觉得有两种不同的命名约定很愚蠢,FxCop 抱怨控件名称上的前缀,我不喜欢命名约定。

那么人们如何命名表单上的控件?

【问题讨论】:

    标签: naming-conventions


    【解决方案1】:

    我实际上命名控件的方式与您相同。我发现它提供了一种更快的方法来从后面的代码中识别控件。如果您真的不想遵守此约定,包括某种前缀可能会有所帮助,尤其是在大型表单上。例如,如果您正在注册用户,获取他们的抄送信息和计费信息,则在计费信息输入前加上“Bill”将提供与“txt...”相同的结果。

    对我来说,这是一件速度的事。如果没有前缀,当我在同一页面上与 10 或 20 个其他人打交道时,我很容易忘记我所谓的输入框。当我忘记时,我必须切换回 VS 中没有乐趣的设计视图。

    【讨论】:

      【解决方案2】:

      我总是用匈牙利符号来控制我的表单控件,而 FxCop 和 StyleCop 会告诉我什么。

      假设我有一个包含电子邮件、姓名和消息的联系表。我们为我们的开发使用 MVP 模式,所以我将实现一个具有三个属性的视图,电子邮件、名称和消息,所以我不能将它们用作控件名称。

      我不喜欢将控件命名为 EmailTextBox,因为我不认为这比使用 txtEmail 更好。毕竟,你还是把类型加上名字,放在前面(和缩写)还是后面有什么区别?

      我喜欢使用像txt 这样的前缀然后all我的文本框被分组在智能感知窗口中。如果我有十几个表单字段并且忘记了我命名的字段,只需键入txt 并滚动列表即可。比从智能感知的顶部开始或切换回设计界面要容易得多。

      也就是说,我将永远,永远将匈牙利表示法用于除表单字段之外的任何内容。表单字段通常不会进入公共 API,所以我不关心它们。

      【讨论】:

        【解决方案3】:

        我不使用匈牙利语前缀,我不认为它们比变量名或公共属性更有价值,我当然不会在那里使用它们。

        【讨论】:

          【解决方案4】:

          通常我会使用一个标识名称,后跟控件类型。例如“ForenameTextbox”、“SubmitButton”。

          【讨论】:

            【解决方案5】:

            我遵循与您相同的方法(例如图像按钮的“imgBtnSaveFinal”),但我知道这场辩论可以永远持续下去,我觉得在决定我们是否应该使用众多标准之一之后使用起来很舒服,以及该符号将来对我们有多大用处,即如果该符号对任何人都没有意义,那么使用它也没有多大意义!

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2017-12-16
              • 2011-09-22
              • 2011-02-09
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多