由于机房重构选择的是C#语言,虽然我们在做机房重构之前学习过C#的教程和大话都是用C#写的,但是敲别人的代码和自己写代码的不同在我初次使用的时候就体现的淋漓尽致,在这里选择我自己出错的和用到的一些C#的基础知识,望大家了解和借鉴.
(1).大家都熟知的引用命名空间,如:using System.net
(2).处理非托管对象,保证其正确的释放资源;
using(SqlConnection con = new SqlConnection(str) ){ //代码部分,不用自己关闭连接,这样省去程序员的时间和精力,我们的sqlhelper中有关闭连接的命令,若用using则不必考虑释放连接 }
不知道大家记不记得,在我们期作品展的时候,有几个同学的程序在关闭退出之后,用任务管理器打开还有再运行的部分,最经典的场景我记得是某同学的音乐播放器在整个程序退出后任然在播放音乐.最终九期师哥让我们把电脑的声音关掉,这都是由于退出不彻底造成的,下面是C#中的退出.
(1).this.Close(); 只是关闭当前窗口,若不是主窗体的话,是无法退出程序的,另外若有托管线程(非主线程),也无法干净地退出;
(2).Application.Exit(); 强制所有消息中止,退出所有的窗体,但是若有托管线程(非主线程),也无法干净地退出;
(3).Application.ExitThread(); 强制中止调用线程上的所有消息,同样面临其它线程无法正确退出的问题;
(4).System.Environment.Exit(0); 这是最彻底的退出方式,不管什么线程都被强制退出,把程序结束的很干净。
int i; string a="123"; if(int.TryParse(a, out i)) { //这里处理,如果是整数。这里写如果是整数的代码就可以了,<span style="font-family: KaiTi_GB2312;">现在i的值是123。</span> } else { //如果a不是int类型的内容,<span style="font-family: KaiTi_GB2312;">这时候,i的值是0.这里写如果不是整数的代码就可以了.</span> }
在设计数据库的时候,我将时间的数据类型设定为time(0),但是这下可难坏了在C#中如何获取当前时间,因为C#中与SQL Server的time对应的而是timespan类型,而如果你去百度一下timespan的话你就知道了,这个在C#中是计算时间差的!!!
计算时间差的如何保存时间呢?大家帮我想想,一个数的差如何与它本身相同?你想到了对吧?减去0,对我的方法就是给当前时间减去0.但是问题又来了,如何获得一个时间点为0的时刻?难道我要定义一个常量,然后在0点的时候去获取?未免太累了,大家快帮帮忙想想如何获得一个时间点为0的时刻?说来简单的可笑,只要用一个convert函数就可以了,怎么办呢?这样就行了,convert.todatetime("00:00:00"),自己造一个0时刻的值!
这样当前时间用timespan类型来获取就可以用两个datetime类型的数据做差了
timenow=convert.todatetime(datetime.now("hh:mm:ss"))-convert.todatetime("00:00:00")
在做机房重构之初就想到会有一些困难,但是收获一点会很多,现在看来,当初决定用C#作重构的决定还是不错的!