关于代码的优化小技巧
Referenceequals 判断引用相等
Equals 先判断引用相等 然后判断值类型相等
优先使用foreach循环
使用using try..finally 清理资源
使用stringbuilder进行复杂的字符串操作
减少装箱拆箱
为需要多太的类添加受保护的虚方法dispose(),派生类通过重写它释放自己。
不要在循环中创建对象
在逻辑分支中创建对象,因为这些对象不一定每次都会调用
使用常量避免创建对象
不要使用空构析函数
实现IDisposeable接口
对一个字符串操作大于10次以上时,使用stringbuilder (不可变性,不变类)
尽可能不要使用toUpper和toLower方法 比较可以使用 bool.parse compare
判断空字符串的方法 length==0
只有方法中的变量才需要初始化
动态创建对象 使用最高效率的activator.createinstance(Type)
数据库中的表链接是低效率的操作 因为表连接会产生N*M条临时数据
Sqlhelp类返回datareader时 使用using保护资源
using(datareader reader=sqlhelp.Reader(sql))
{
}
定义对象放在using的前面,不要放在里面。
调用存储过程
string sql = "GetPageList";//存储过程的名称
SqlParameter pCount = new SqlParameter("@rowsCount", SqlDbType.Int);
pCount.Direction = ParameterDirection.Output;//将参数设置为输出
using SqlConnection conn = new SqlConnection("server=.;database=dbtest;uid=sa;pwd=123"))
{
SqlCommand cmd=new SqlCommand(sql,conn);
//指定命令类型为存储过程
cmd.CommandType = CommandType.StoredProcedure;
//根据存储过程来构造参数
SqlParameter pIndex=new SqlParameter("@pageIndex",pageIndex);
SqlParameter pSize = new SqlParameter("@pageSize",pageSize);
//为cmd添加参数
cmd.Parameters.Add(pIndex);
cmd.Parameters.Add(pSize);
cmd.Parameters.Add(pCount);
conn.Open();
SqlDataReader reader = cmd.ExecuteReader();
项目开发的步奏
市场调查。
写一个程序,肯定是为了赚钱。迎合客户的需求,是项目的基本要求。市场调查的目的在于分析目前市场的状态,评估这个项目的可行性。
开题报告
这个是毕业设计的步奏吧,是对条目一的总结。包括了开发这个项目的原因和项目的大致功能。
需求分析
通过条目一的调查和条目二的总结。可以得知这个项目为了完成怎么样的目的,服务于什么人,用于怎么样的环境。
数据库需求分析
搭建数据库,首先要分析整个数据库包含了什么数据,有多少个实体,实体间是怎么联系的,每个实体有什么属性,关系中有什么新的数据产生,实体间是多对多的关系还是一对一或一对多的关系。关系是否需要创建单独的关系表。数据库的表不一定是一个实体。
绘制ER图
注意实体的关联,一般不存在环形的结构。实体也可能是独立的。
建立数据库
编写SQl脚本
程序的功能模块分析
程序的流程分析
代码实现
程序测试
function init()
{
var message_web = "http://" + ip + "/WebAuth_message.asp"
if (authResult == "认证成功!")
{
window.open(message_web, '_blank', 'height=200, width=400, toolbar=no, menubar=no, scrollbars=no, resizable=no, location=no, status=no, top=0, left=0');
}
else if (authResult == "认证失败!")
{
errFont.color = "#FF0000";
}
else if (authResult != "")
{
errFont.color = "#FF0000";
}
else
{
;
回避项目的问题 声明这个是第一个版本 将在第二个版本完善或者增加相关功能