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;
            }
    }
  • 相关阅读:
    20180925-6 四则运算试题生成
    20180925-7 规格说明书-吉林市2日游
    20180925-5 代码规范,结对要求
    20180925-2 功能测试
    20180918-2 每周例行报告
    互评Alpha版本
    2017软工 — 每周PSP
    王者荣耀交流协会 — Alpha阶段中间产物
    王者荣耀交流协会第四次Scrum立会
    2017秋软工 —— 本周PSP
  • 原文地址:https://www.cnblogs.com/ironcrow/p/10248391.html
Copyright © 2011-2022 走看看