在开始写这篇文章之前,先给大家看两段代码:
第一段:
Console.Write("请输入数字A:");
string A = Console.ReadLine();
Console.Write("请选择运算符号(+、-、*、/)");
string B = Console.ReadLine();
Console.Write("请输入数字C:");
string C = Console.ReadLine();
string D = "";
if (B == "+")
D = Convert.ToString(Convert.ToDouble(A) + Convert.ToDouble(C));
if (B == "-")
D = Convert.ToString(Convert.ToDouble(A) - Convert.ToDouble(C));
if (B == "*")
D = Convert.ToString(Convert.ToDouble(A) * Convert.ToDouble(C));
if (B == "/")
D = Convert.ToString(Convert.ToDouble(A) / Convert.ToDouble(C));
Console.WriteLine("结果是:" + D);
第二段:
try
{
Console.Write("请输入数字A:");
string strNumberA = Console.ReadLine();
Console.Write("请选择运算符号(+、-、*、/):");
string strOperate = Console.ReadLine();
Console.Write("请输入数字B:");
string strNumberB = Console.ReadLine();
string strResult = "";
switch (strOperate)
{
case "+":
strResult = Convert.ToString(Convert.ToDouble(strNumberA) + Convert.ToDouble(strNumberB));
break;
case "-":
strResult = Convert.ToString(Convert.ToDouble(strNumberA) - Convert.ToDouble(strNumberB));
break;
case "*":
strResult = Convert.ToString(Convert.ToDouble(strNumberA) * Convert.ToDouble(strNumberB));
break;
case "/":
if (strNumberB != "0")
strResult = Convert.ToString(Convert.ToDouble(strNumberA) / Convert.ToDouble(strNumberB));
else
strResult = "除数不能为0";
break;
}
Console.WriteLine("" + strResult);
Console.ReadLine();
}
catch (Exception ex)
{
Console.WriteLine("" + ex.Message);
}
大家看完上面的两段代码有什么感觉呢?
稍有一些经验的大神们一眼就会看出:第一段代码的命名不合规范,而且会做无用功,还没有考虑到C为0的情况;第二段代码虽然能够较好的实现这个编程,但是没有很好的运用到面向对象的概念。
现在,进入这篇文章的主题——代码的规范。
先说一下为什么要把代码写规范
1) 有一个好的代码可读性;使得你读别人的代码和别人读你的代码一样容易;
2)避免坏的代码习惯,规范的代码不容易引进bug,而且易于维护;
3)有一致的代码风格,看上去所有的代码就象一个人写的;
4)以“程序结构和可读性第一,优化第二”为宗旨。
然后是命名的规范
如上面第二段代码(strNumberA )所示:str代表的是变量A的数据类型是string,NumberA是数字A的名字,这两个合在一起构成了数字A的名称,能够使人一眼就能够更加直观地看出A是一个什么东西,减少了沟通的障碍,使得代码更容易理解。
其实,代码的编写也是有一定的规则的:
1)直觉命名函数、变量、宏、常量,让它们表示它们的意思 ,避免名字太短或太长,3<名字长度<40;
2)在变量、结构、函数名中,第一个单词尽量用可以反映变量类型的单词,其余所有的单词除了第一个单词以
外第一个字母将用大写;
3)类型定义(typedef)、宏(macro)、常量(constant)所有字母必须大写,单词连接用下划线;
4)避免定义索引用数字,建议用集合定义;
5)避免用临时变量,象I, ii , tmpBuf , 除了在一个局部有效,当局部外要 命名特别变量;
6)避免定义索引用数字,建议用集合定义; 避免用临时变量,象I, ii , tmpBuf , 除了在一个局部有效,当局部
外要命名特别变量;
7)避免同一块程序不同事物命名相似;
8)避免不同部分、不同共用全局对象(类型、变量、宏)用相同名;
9)建议用“g”或“g_”作为全局变量前缀,“m”或“m_”作为成员前缀(c++) 或静态变量前缀(c),如果你愿
意,可以参阅匈牙利命名规则。
在编程当中也是有一定规则的
1) 不要将多个语句放在同一行上
2) 使用行接续符
3) 缩进后续行
4) 运用语句缩进来显示代码的组织结构
5) 对模块的D e c l a r a t i o n s部分中的代码进行缩进,显示其从属关系
6) 使用白空间将相关语句组合在一起
以上这些是我根据米老师的讲课和百度总结出来的,都是编程人员必须知道的事情,只有做好了这些才能成为一个优秀的软件编程人员。