我们一起谈谈C#编程中,变量和控件的命名规范
比如:
命名一个
姓名 变量:string strName
编码 :int intNumber
出生日期 :dtBirth
---------------
控件命名规范:
TextBox :txtName
Lable :lblMsg
........
谈谈大家的看发,给点意见,大家的标准命名规范如何??
问题点数:20、回复次数:11Top
1 楼knoros2004()回复于 2005-06-16 10:49:03 得分 1
建议楼主控件和变量不要用同一种命名规则。Top
2 楼cugo(cugo)回复于 2005-06-16 11:04:34 得分 1
控件命名=控件缩写前缀 + “_” +变量名
控件 缩写
Label lbl
TextBox txt
CheckBox chk
Button cmd
ListBox lst
DropDownList drp
等等
Top
3 楼cugo(cugo)回复于 2005-06-16 11:06:33 得分 4
程序中变量名称 = 变量的前缀 +代表变量含意的英文单词或单词缩写。
1. 类模块级的变量请用“m_”作前缀
public class hello
{
private string m_Name;
private DateTime m_Date;
}
2. 类的属性所对应的变量,采用属性名前加“m_”前缀的形式
public class hello
{
private string m_Name;
public string Name
{
get
{
return m_Name;
}
}
}
3. 过程级的变量不使用前缀
public class hello
{
void say()
{
string SayWord;
}
}
4. 过程的参数使用“p_”作为参数
public class hello
{
void say(string p_SayWord)
{
}
}
Top
4 楼Ivony(授人以鱼不如授人以渔,上海谋生)回复于 2005-06-16 11:21:51 得分 4
微软是反对这种匈牙利命名法的,本人也深有同感。
比如说,txtName和selName有什么区别没有,纯粹是前面显示的东西不同罢了,而在后面取值的过程完全是一样的代码,那为什么不直接叫Name,或者iptName、iName,如果是严格的分层规划,命名不可能冲突,页面上可以直接叫Name,页面叫作inputUserInfo,生成UserInfo对象,页面上的Name直接对应到UserInfo对象的Name属性,数据库的字段名也叫Name,从表示层到逻辑层直到数据访问层、数据库,一个Name用到底是很容易的,也很容易看清楚。好,我们偏不这样,每个层都用特有的匈牙利命名法:
页面上面叫作txtName,逻辑层叫作UserName,数据库里面干脆来个UserInfo_Name。那是天书,没谁能看懂。
微软的做法是:
private的成员一律加"_"前缀。所有的成员变量必须是private。除非是const。
public和protected的成员一律按照P和C命名法,不存在protected成员变量,而是protected方法。internal亦是如此。Top
5 楼xli520(商界骄子)回复于 2005-06-16 11:24:06 得分 0
我总觉得变量命名一定要加上变量类型的宿写才方便辨认
比如定义一个 bool bInt;
string strName;
这样别人看到变量就知道是什么类型的了Top
6 楼Ivony(授人以鱼不如授人以渔,上海谋生)回复于 2005-06-16 12:42:18 得分 5
C#本来就是强类型的语言,那么强调类型干什么,如果类型不对,那是编译时错误。况且,如果你非要用string来储存日期,你完全可以这样命名:XXXDateStr,而完全没必要在每一个DateTime前面加上dt什么的东西。
名字就是名字,不要承载太多的东西。谁会称呼自己的父母或者儿子为(高级律师)XXX(先生)呢?同样的道理,我们也不应该把我们的变量称呼为引用A整形。这样除了害自己没有什么好处。现在已经不是那个指针乱指的年代了。Top
7 楼yangjundeng(天下无双)回复于 2005-06-17 19:27:53 得分 2
<我总觉得变量命名一定要加上变量类型的宿写才方便辨认
比如定义一个 bool bInt;
string strName;
这样别人看到变量就知道是什么类型的了>
我不同意这样的看法,我觉得,不需要变量的类型,更美观.要知道变量的类型,只要鼠标移动到变量的上面就知道了.Top
8 楼BigIdiot628(大笨蛋,谁叫你不努力!)回复于 2005-06-17 20:10:23 得分 1
听课来了。Top
9 楼lgh12345(慧眼数码阅卷王2006)回复于 2005-06-17 20:35:54 得分 0
gzTop
10 楼singlepine(小山)回复于 2005-06-17 20:42:22 得分 2
ms-help://MS.MSDNQTR.2003FEB.2052/cpgenref/html/cpconnamingguidelines.htmTop
11 楼good_sun(汉堡+泡面)回复于 2005-06-17 21:07:16 得分 0
学习学习Top




