C#泛型

版权声明:本文为博主原创文章,未经博主允许不得转载,详情访问:happysneaker.com https://blog.csdn.net/Cody_Ren/article/details/79953016

一、什么是泛型?

二、什么是索引器?

三、泛型有什么卵用?

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

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();
        }
    }
}

这里写图片描述

阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页