zoukankan      html  css  js  c++  java
  • .NET复习笔记-泛型

    1.yield关键字用于返回迭代器具体的值,如下框代码所示

    /// 返回0~9整数集合
    public static IEnumerable<int> yieldSampleMethod()
    {
        int index = 0;
        while (index < 10)
            yield return index++;
    }


    2.泛型约束

    约束 描述
    where T: struct 类型参数必须为值类型。
    where T : class 类型参数必须为引用类型。
    where T : new() 类型参数必须有一个公有、无参的构造函数。当于其它约束联合使用时,new()约束必须放在最后。
    where T : <base class name> 类型参数必须是指定的基类型或是派生自指定的基类型。
    where T : <interface name> 类型参数必须是指定的接口或是指定接口的实现。可以指定多个接口约束。接口约束也可以是泛型的。

    3.泛型代码中的 default 关键字

    对于一个参数化类型T的变量t,仅当T是引用类型时,t = null语句才是合法的; t = 0只对数值的有效,而对结构则不行。这个问题的解决办法是用default关键字,它对引用类型返回空,对值类型的数值型返回零。而对于结构,它将返回结构每个成员,并根据成员是值类型还是引用类型,返回零或空。

    public class MyList<T>
    {
            public T GetNext()
            {
                T temp = default(T);
                if (current != null)
                {
                    temp = current.Data;
                    current = current.Next;
                }
                return temp;
            }
    }
  • 相关阅读:
    MyEclipse Tern was unable to complete your request in time
    12.5.2 访问被覆盖的方法
    猎头、培训与咨询的价值(2)【补1】——北漂18年(93)
    12.5.1 通过 @ISA 继承
    从柯洁对战AlphaGo,看商业智能
    jquery ajax POST 例子详解
    利用组合索引优化
    Oracle range 分区表
    Perl 面向对象上
    JSON导出CSV中文乱码解决方案
  • 原文地址:https://www.cnblogs.com/ironcrow/p/10248391.html
Copyright © 2011-2022 走看看