1.方法传递的参数,数据类型验证.(这一步很重要,一般程序员都会忽略,以为没有问题)
例如:需要用int.tryparse来进行是否能够转换数据类型
2.需要判断的条件,注意条件命名,不要太长,需要一一列出来.并在后面写注释
例如:
int companyCheckState = 0;
string companyName = string.empty;等等
注意:这些定义的变量,不要写在try{}catch{}里面
3.定义状态,只有True或者False(在最后获取判断状态去进行增删改)
例如:bool isPass = false;//XXX状态是否XXX
注:这里很多人会忽略这个细节,因为很多人都喜欢用
int checkState = 0;
//
do checkState someThing
进行checkState ++;
//
if(checkState > 0)
{
//do someThing;
}
我个人不推崇这种写法,但其实这种写法按道理跟定义True/False的情况是一样的,但感觉严谨程度没有True/False的好.
并且看到人头都晕了.当然.有好建议也可以提一提.本人虚心求教!
4.如果符合某个条件情况,则把状态设置为True或者False
例如:
if(companyState == 1)
{
isPass = true;
}
5.最后就判断前面所定义状态:
A.如果符合某种状态,就进行增删改
if(isPass)
{
//do someThing;
}
else//如果不符合某种状态,就报错
{
//show errorMessage;
}
注意:以下几点:
1.定义的变量和属性,都建议赋初始值,并写在Try{} catch{}之外
Example For:
bool isExist = false
try
{
}
catch(Excepation ex)
{
throw(ex);
}
.......
以下写法是错误的:
Try
{
bool isExist = false;
}
.......
2.如果需要尝试转换数据类型的时候,也用TryParse方法,这个方法不会抛异常,只会返回True or False
所以也写在Try{} catch{}的外面:
Example For:
public static int DemoFunction(string _ID)
{
int demoValue = -1;
int ID = -1;
bool isParseSucess = int.TryParse(_ID, out ID);
if(!isParseSucess )
{
return demoValue;
}
try
{
//do someThing by ID;
}
catch(Exception ex)
{
throw(ex);
}
return demoValue;
}
3.写循环的时候.尽量使用Foreach循环,速度上比其他循环会快点(经过测试软件测试),但也要注意写法:
Example For:
public static int DemoFunction(string _IDList)
{
int demoValue = -1;
try
{
string[] IDList = _IDList.sqlit(',');
//Error
foreach(string sID in IDList)
{
int ID = int.parse(sID);// Error:相信学过C++的内存,都知道怎么回事了.......省略不写了
do someThing by ID;//性能上会很慢......
}
//correct
int ID = 0;
foreach(string sID in IDList)
{
ID = int.parse(sID);
do someThing by ID;//性能上比前者快得多了.又省很多内存,特别循环超过5000个的时候.
}
}
catch(Exception ex)
{
throw(ex);
}
return demoValue;
}