随笔-4  评论-7  文章-0  trackbacks-0
  2008年4月10日

C#下的强制类型转换应用分析:()、is、as

C#下的强制类型转换有以下三种:

注:objA 为 typeA 类型,objB 为 typeB 类型

(1) typeA objA = (typeA)objB;

(2) typeA objA = objB as objA;

(3) typeA objA = objB as typeA

在实际开发过程中我们经常用到上面三种类型转换,但这三种强制类型转换的区别,以及在使用中应如何选择呢?

在我们使用第一种类型转换时,如果类型typeA是typeB的上层类,则能正确进行类型转换,如typeB是typeA的上层类,将会抛出System.InvalidCastException异常。所以在实开发中,为了避免异常的发行,我们可能会用到如下的代码:

If(objB is typeA)

{

objA = (typeA)objB;

}

其中is为第二种类型转换,根据MSDN上的解释,它的作用是“检查对象是否与给定类型兼容”,尽管它仅是反回一个boolean类型的值,但它也是通过进行类型转换来判断是否兼容的,所以,在使用此语句的时候,会进行一次类型转换。那么,如果typeB与typeA是相容的话,上述代码将会再次进行 (typeA)objB的类型转,肯定会影响我们所开发程序的性能。那么有没有一种更好的办法来帮助我们解决这个问题呢?

下面我们来看一下第三种强制类型转换。

在进行第三种类型转换时,如果typeB型的实例objB无法转换到typeA类型时,就会反回一个null值,若转换成功,则返回一个typeA类型的实例。此种转换不会发生异常,且仅需一次类型转换。这就解决了上面两次类型转换所带来的性能消耗。

posted @ 2008-04-10 11:10 朱保旭 阅读(3093) 评论(3) 编辑
  2008年3月17日

虽然常写ajax方面的东西,但是很少去专门了解xmlHttpRequest的status各个值的含义,只是在用到时Google一下,下面将他人已总结过的转载一下,学习学习。

 

xmlHttpRequest对象的status代表当前http请求的状态,是一个长整型数据,现在介绍一下它的含义。

http请求状态及其含义表

1xx - 信息提示
2xx - 成功
3xx - 重定向
4xx - 客户端错误
5xx - 服务器错误

转自:ajax技术基地

posted @ 2008-03-17 10:28 朱保旭 阅读(2571) 评论(1) 编辑
  2008年3月14日

由于工作需要,近日开始学习JSP。

对我来说,在学新东西之前总是很兴奋的,虽然JSP对大多程序员来说早已是自已拿手的开发语言,并不是什么新东西。

昨天让公司网络中心的同事帮着下了一个 lomboz-all-in-one(version:org.objectweb.lomboz-all-in-one-S-3.3RC1-200708181505-win32),解压之后,急切的将包内的 eclipsse 打开,却出现的一个让人头痛的问题:

QQ截图未命名 

但是在同事机器上就不会出现这个错误,自已仔细检查过环境变量,并未发现错误。

在网上多方查寻(众说纷纭)也没解决。后来没办法,就又到网上下了另一个版本(Version:org.objectweb.lomboz-all-in-one-R-3.3-200710290621-win32),重新解压,点击eclipse,竟然好了!郁闷!惊喜!

环境终于配好,由此将开始我的 JSP 学习......

但愿早日取得正果。

posted @ 2008-03-14 15:32 朱保旭 阅读(976) 评论(2) 编辑
  2008年2月17日

        2007年的春节已经过去。

        但是这个春节却让我发现,在很多事情面前,语言是那么的苍白,自已纵是豪情壮志,却依然是那么的渺小。
       
        明天就要正式开始上班了。

        为了父母,为了家庭,2008,努力工作,努力学习!

posted @ 2008-02-17 16:19 朱保旭 阅读(40) 评论(1) 编辑
仅列出标题