机房重构(四)--C#的一些基础知识

    由于机房重构选择的是C#语言,虽然我们在做机房重构之前学习过C#的教程和大话都是用C#写的,但是敲别人的代码和自己写代码的不同在我初次使用的时候就体现的淋漓尽致,在这里选择我自己出错的和用到的一些C#的基础知识,望大家了解和借鉴.

    1.Using的作用

      (1).大家都熟知的引用命名空间,如:using System.net

      (2).处理非托管对象,保证其正确的释放资源;

using(SqlConnection con = new SqlConnection(str) ){
//代码部分,不用自己关闭连接,这样省去程序员的时间和精力,我们的sqlhelper中有关闭连接的命令,若用using则不必考虑释放连接
}

2.关于退出 

不知道大家记不记得,在我们期作品展的时候,有几个同学的程序在关闭退出之后,用任务管理器打开还有再运行的部分,最经典的场景我记得是某同学的音乐播放器在整个程序退出后任然在播放音乐.最终九期师哥让我们把电脑的声音关掉,这都是由于退出不彻底造成的,下面是C#中的退出.

(1).this.Close();   只是关闭当前窗口,若不是主窗体的话,是无法退出程序的,另外若有托管线程(非主线程),也无法干净地退出;

(2).Application.Exit();  强制所有消息中止,退出所有的窗体,但是若有托管线程(非主线程),也无法干净地退出;

(3).Application.ExitThread(); 强制中止调用线程上的所有消息,同样面临其它线程无法正确退出的问题;

(4).System.Environment.Exit(0);   这是最彻底的退出方式,不管什么线程都被强制退出,把程序结束的很干净。

3.C#中没有isnumeric这个函数!

      C#中是没有isnumeric这个函数的.但是我们可以通过一些小技巧来实现这样的一个功能,在int和double等基本类型的数据里,C#提供tryparse函数.通过这个函数,就能实现类似isnumeric的功能:

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>

}

    4.数据库中Time类型的对应类型

      在设计数据库的时候,我将时间的数据类型设定为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")

在用datetime的时候要注意一点datetime.now("yyyy-MM-dd")才能正确的获取年份,大写的M表示月份,小写的m表示分钟.具体的可以点 这里.

    在做机房重构之初就想到会有一些困难,但是收获一点会很多,现在看来,当初决定用C#作重构的决定还是不错的!



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 21
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 21
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值