zoukankan      html  css  js  c++  java
  • 泛型 .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;
        }
  • 相关阅读:
    Python range() 函数用法
    python测试框架&&数据生成&&工具最全资源汇总
    为什么你写的用例测不出Bug来?
    软件测试人员必备知识工具清单
    接口测试需要验证数据库么?
    如何在实际工作做开展性能测试?
    为什么要做接口测试?
    面试时让你说一个印象最深的bug,该怎么回答
    maven一键部署tomcat war包(转载)
    数据库中 显示 小计 与 总计
  • 原文地址:https://www.cnblogs.com/wbcms/p/1037565.html
Copyright © 2011-2022 走看看