C#泛型

1人阅读 评论(0) 收藏 举报
分类:

一、什么是泛型?

二、什么是索引器?

三、泛型有什么卵用?

四、泛型有神马需要注意的地方?

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;


namespace learning
{
    // 使用泛型,将普通类改造成泛型类
    // 数组类 Array
    // 泛型类 - 需要在类名后加上泛型类型,使用T的地方,就是表示未指定类型,自行使用即可
    // 定义的时候需要用泛型类型 T 表示任意一种类型

    // 注意:
    // 1、使用泛型能够提高代码重用
    // 2、使用泛型时,由于类型不确定,所以我们不能使用算术运算符、比较运算符
    // 参数个数可以不限定,<T,S,U,V>即可
    // T - type
    // S/U/V - 第2、3、4种类型
    // K/V - key/value
    // N - number
    public class Array <T> {

        // 定义一个索引器,[]内表示的是下标类型,下标类型肯定为int 
        public T this[int index] {
            set {
                _arr[index] = value;
            }
            get {
                return _arr[index];
            }
        }

        // 定义一个属性,count类型肯定为证书,不用改
        public int Count {
            get {
                // 返回数组元素个数
                return _count;
            }
        }

        public void Add(T value) {
            _arr[_count] = value;
            _count++;
        }

        public void Log() {
            string str = "当前数组中包含 " + Count + " 个元素:(";
            for(int i = 0; i < Count; i++)
            {
                str += _arr[i];
                if (i < Count - 1) {
                    str += ",";
                }
            }
            str += ")";
            Console.WriteLine(str);
        }

        // 定义一个数组方法
        public Array() {
            _arr = new int[100];
        }

        private T[] _arr;

        // 用来保存当前元素个数,初始化为0
        public int _count = 0;
    }

    class Program{

        public static void Main(string[] args)
        {
            // 当具体使用的时候,才需要确定实际的类型
            Array<int> arr = new Array<int>();
            arr.Log();
            arr.Add(23);//添加
            arr.Log();//打印
            arr.Add(74);
            arr.Log();
            arr[1] = 12;
            arr.Log();
        }
    }
}

这里写图片描述

查看评论

C#泛型C#泛型C#泛型

  • 2008年12月14日 23:34
  • 81KB
  • 下载

深入理解C#中的泛型(一)

通过实例讲解C#中泛型的由来及使用特性
  • quwenzhe
  • quwenzhe
  • 2015-07-28 15:56:11
  • 3950

C#泛型特性总结

1.C#泛型的声明 泛型一个是数据类型抽象,就是一个类或者函数的模板。 范型可以实现接口和继承类,继承基类的类型可以是范型也可以是具体类型。 范型类的静态成员只能在一个实例中共享因为类型都不...
  • Blues1021
  • Blues1021
  • 2015-10-01 18:16:16
  • 1489

泛型之T运算 二

泛型技巧系列:类型字典和Type Traits注意:未经许可,本系列禁止转载。本文所介绍的技巧,是我在研究泛型开发不久就发现并成功运用的技巧。这个技巧是突破.NET泛型限制,达到“看上去很美”境界的法...
  • zilin82
  • zilin82
  • 2010-11-23 20:23:00
  • 4070

C#中的泛型介绍和理解

C#中的泛型,从自面意思可猜想,也就是泛指的类型,即类型不确定。用于编程中,也就是说可以对不同的类型进行抽象。概念其实很简单,对于我们这些新手来说,主要问题可能就是对泛型的作用,用法和语法的规则,简写...
  • u012125929
  • u012125929
  • 2015-08-06 22:02:25
  • 2114

单例模式的泛型实现 C#

当开发人员想将一个类以单例模式实现时,可以在类中定义。 当时如果
  • wuha555
  • wuha555
  • 2014-11-10 17:20:25
  • 8048

C# 泛型委托 Action/Func

泛型委托实际上就是.NET Framework预定义的委托,基本涵盖了所有常用的委托,所以一般不用用户重新声明。简洁方便! 【1】无返回值的泛型委托 Action系列泛型委托,是没有返回参数的...
  • aoshilang2249
  • aoshilang2249
  • 2014-10-10 21:53:42
  • 1248

1.用C#的泛型实现简单的工厂模式

Factory Method   结构   意图 定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method 使一个类的实例化延迟到其子类。   适用性 ...
  • right817
  • right817
  • 2012-04-18 10:15:39
  • 1444

C# 泛型理解之大白话

泛型:泛就是多,许多,很多的意思;型:就是类型,比如:int、float、double等等的数据类型;连接起来就是许多不同的数据类型,包括内置数据类型:就是系统自带,定义好的;自定义类型:就是自己定义...
  • Rose_Girls
  • Rose_Girls
  • 2015-10-09 23:35:40
  • 1506

C#三十二 泛型的理解和使用

日常生活中的事物都是有类型的,比如我们说“一个女人”,那么“女”就是这个人的类型。我们可以说“女人都是水做的”,那么听者都知道这是在说“女”这种类型的人。再比如你去肉店买肉,你可以对老板说“我要十斤猪...
  • zhangchen124
  • zhangchen124
  • 2016-05-11 21:52:04
  • 6682
    个人资料
    持之以恒
    等级:
    访问量: 5608
    积分: 347
    排名: 23万+
    最新评论