当前位置:  编程技术>.net/c#/asp.net

浅谈C#2.0泛型中的变化:default关键字

    来源: 互联网  发布时间:2014-10-23

    本文导语:  今天回答别人问题的时候,才发现原先的T.default语法被取消了,使用了新的default关键字来实现这一功能。还好回复前动手试了一下,不然就... 下面详细说明一下。之所以会用到default关键字,是因为需要在不知道类型参数为值...

今天回答别人问题的时候,才发现原先的T.default语法被取消了,使用了新的default关键字来实现这一功能。还好回复前动手试了一下,不然就...

下面详细说明一下。之所以会用到default关键字,是因为需要在不知道类型参数为值类型还是引用类型的情况下,为对象实例赋初值。考虑以下代码:

代码如下:

class TestDefault
    {
        public T foo()
        {
            T t = null; //???
            return t;
        }
    }

如果我们用int型来绑定泛型参数,那么T就是int型,那么注释的那一行就变成了 int t = null;显然这是无意义的。为了解决这一问题,引入了default关键字:
代码如下:

class TestDefault
    {
        public T foo()
        {
                return default(T);
        }
    }

以下是测试用的代码,看了之后就应该很快能明白,default关键字的作用:
代码如下:

 class Program
    {
        static void Main(string[] args)
        {
            TestDefault t1 = new TestDefault();
            int i = t1.foo();
            System.Diagnostics.Debug.Assert(i == 0);

            TestDefault t2 = new TestDefault();
            object o = t2.foo();
            System.Diagnostics.Debug.Assert(o == null);
        }
    }


最后说明一下,在.net 2.0的早期preview中,没有default关键字,使用如下的方式实现default关键字的功能:
代码如下:

class TestDefault
    {
        public T foo()
        {
                return T.default;
        }
    }

这段代码在vs 2005 beta1中,已经不能通过编译了。

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 如何使在JLable中加载的ImageIcon随着窗体的大小变化而变化,谢谢!!!
  • visio二次开发--判断文档是否已发生变化(变化就加星号*)
  • 怎样捕获组合框中文本发生变化的事件?
  • linux2.4到2.6,信号的概念有哪些变化?
  • 操作系统目录变化监控 jpatchwatch
  • 遍历其文件动态变化的目录
  • linux如何监控某个文件内容的变化并
  • 请问从hp-ux到linux移植时,socket部分会有什么变化?哪位大虾有详细的文档?
  • 如何得到关于Swing组件中的JTextField控件内数据发生变化时的方法?
  • 怎么监控文件的变化(不使用轮循的方法)
  • [官方最新消息]Oracle 10G 认证考试新变化
  • 更换网络 主机名变化了
  • linux内核版本变化问题
  • 有哪个文档详细说明linux内核的每个版本的变化?
  • 请问 makefile 嵌套执行,在不同目录中,同一文件的相对路径发生变化怎么办?
  • 如何控制同页面下两个选择框的内容相互变化???
  • 请问:linux 下 C语言编程 , 如何将 串口 由 全双工 变化为 半双工 通讯 方式?
  • 9260串口的handshaking模式,RTS/CTS电平如何变化
  • 谁能让图片随 Frame 的大小变化自动适应窗口,帮帮我
  • Hashtable问题,方法中返回的Hashtable的capacity发生变化


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3