ASP.NET中的控制/变量命名约定

时间:2011-02-23 13:44:00

标签: c# asp.net naming-conventions

我认为命名的主要区别在于逻辑与视图相关的对象。您可能在页面的代码隐藏文件中有一个名为“ UserName ”的变量,但也有一个.NET TextBox,其中用户应该输入其用户名(一个合理的ID也将是“的用户名”)。我们如何区分(ID-wise)逻辑“ UserName ”和视图“ UserName ”。我的问题是,在提出这些名称时要做出明智的区分是什么?

在我看来,变量名称/控件ID永远不应该描述它是什么,只能描述它的作用。 “ tbUserName ”描述它是一个TextBox,“ strUserName ”定义它是一个字符串。

一个想法是为所有与视图相关的对象添加“ vwUserName ”前缀,并将逻辑部分保留为“ UserName ”。那有意义吗?当我们遇到验证器的情况时怎么办?您会将它们命名为“ vwUserNameRequiredValidator ”或“ vwEmailAddressFormatValidator ”吗?在那种情况下你需要描述它实际上是什么吗?您是否会将.NET RequiredFieldValidator对象的ID设为“ rfvUserName ”?

我真的想知道其他人对此的看法,因为我想提出一个合理且一致的命名约定系统。我很有兴趣听到任何类型系统的论据。

3 个答案:

答案 0 :(得分:2)

匈牙利的表示法是如此......; - )

我会将userName用于逻辑,将userName用作id。

答案 1 :(得分:2)

我倾向于使用 _userName 作为变量, UserName 作为代码隐藏的属性,以及文本框 UserNameField 的ID。我发现以这种方式使用intellisense更容易,而不是像在txtUserName的VB-days中那样做前缀。

编辑:不要将其称为UserNameTextBox,但如果您想将字段(即TextBox)交换到另一个控件,UserNameField也更容易使用(尽管它可能不适用于此用户名示例。

答案 2 :(得分:1)

对于控件,我总是添加一个前缀,如:

  

Textbox - txtName - 我不使用tb,因为它使用tbl作为HtmlTable可能会造成混淆

     

复选框 - cbIsNameRequired

     

RequiredFieldValidator - rfvName

对于变量:

  

姓名

     

IsNameRequired

等。

关于习惯一个模式,但总是有一个模式......