• 泛型 .net学习日记


    泛型(generics)
    这两天一直在与泛型做斗争,现在总算是把这一章的内容都看完了。整理一下心得
    泛型(generics),C++中称为模板。是.net 2.0中才加入的技术。

    个人觉得“模板”这个称呼更准确些,泛型这个东西就是一种类的模板,把一个具体的类A套进去,便成为了对这个类A进行操作的一个新类B,实现了对A类的一些操作和功能。

    常用的几个系统定义好的泛型:
    1.可空类型 System.Nullable<>
    如:System.Nullable<int> nullableInt;即定义了一个可空的int变量(个人感觉是把int封箱到了一个Nullable<int>的对象中。使用了隐式类型转换)

    C#甚至修改了语法,提供了一种更高效的方法定义可空类型:
    int? nullableInt;
    这种int变量是可以使用if(null==nullableInt)的方法判断是否有值。另外还有HasValue属性可用。
    但将int?变量赋给int时需要显式类型转换,例:
    int? op1=5;
    int result=(int)op1*2;

    系统还提供一个新的语法用以处理结果为null的运算--“??”运算符
    使用方法,例:
    int? op1=null;
    int result=op1*2 ?? 5;
    当op1*2得到一个null时,将??之后的5赋值给result。另外这种方法还可以省去表达式前的显式类型转换符。

    using System.Collections.Generic;之所以默认被加载到项目中,因为它是List<T>和Dictionary<K,V>的命名空间。非常之常用。

    List<T>可以非常方便地定义一个自己的类A的列表。
    使用方法,例:
    List<MyClass> myClassCollection = new List<MyClass>();
    之后就可以直接使用myClassCollection的Add()、Remove();方法,用foreach遍历myClassCollection了。

    至于定义泛型类,用的时候现看吧。实在是很麻烦的说...
    18:15 2007-1-23
    以上转自:http://riqe.bokee.com/viewdiary.14851583.html

    下面是一个简单的应用了:在vs2005下,using System.Collections.Generic;//引入泛型命名空间
    public static List<Users> GetAllUsers()
        
    {
            List
    <Users> AllUsers = new List<Users>();
            
    string procName = "dbo.getAllUsers";
            SqlDataReader sdr 
    = DataBase.RunProcReader(procName);
            
    while (sdr.Read())
            
    {
                AllUsers.Add(
    new Users(sdr));
            }

            sdr.Close();
            
    return AllUsers;
        }
  • 相关阅读:
    HDU4652 Dice
    CF113D Museum / BZOJ3270 博物馆
    SHOI2013 超级跳马
    最基本的卷积与反演
    NOI2014 动物园题解
    SP11414 COT3
    new to do
    linux C++中宏定义的问题:error: unable to find string literal operator ‘operator""fmt’ with ‘const char [4]’, ‘long unsigned int’ arguments
    新装vs2010的问题:fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
    windows下删除虚拟串口的方法,以及解决串口使用中,无法变更设备串口号的问题
  • 原文地址:https://www.cnblogs.com/wbcms/p/1037565.html
Copyright © 2020-2023  润新知