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;
        }
  • 相关阅读:
    CentOS安装配置Tomcat-7
    CentOS搭建VSFTP服务器
    使用DDMS测试安卓手机APP的性能(android)
    Linux常见问题及解决方案
    数据库版本控制工具:NeXtep Designer
    身份证号码编码规则
    无网络安装mysql步骤
    HTTP协议详解
    Jenkins持续集成构建
    Gulp和Webpack对比
  • 原文地址:https://www.cnblogs.com/wbcms/p/1037565.html
Copyright © 2011-2022 走看看