zoukankan      html  css  js  c++  java
  • 泛型类和扩展方法

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    namespace 泛型类扩展方法
    {
        class Holder<T>
        {
            T[] vars = new T[3];
        public Holder(T v0,T v1,T v2)
        {
            vars[0] = v0;
            vars[1] = v1;
            vars[2] = v2;    
        }
        public T[] GetValues() 
        {
            return vars;
        }
        }
        /*扩展方法的要求:
         *1、声明为static
         *2、是静态类的成员
         *3、第一个参数类型中必须有关键词this,后面是扩展的泛型类的名字
         */
        static class ExtendHolder
        {
            public static void Print<T>(this Holder<T> h)
            {
                T[] vlas = h.GetValues();
                Console.WriteLine("{0}, {1}, {2}",vlas[0],vlas[1],vlas[2]);
            }
        }
        class Program
        {
            static void Main(string[] args)
            {
                var intHolder = new Holder<int>(3, 5, 7);
                var stringHolder = new Holder<string>("asd","dfew","vrfa");
                intHolder.Print();
                stringHolder.Print();
                Console.ReadKey();
            }
        }
    }
  • 相关阅读:
    [模板] 主席树
    [模板] 替罪羊树
    [模板] Treap
    [LUOGU] P4342 [IOI1998]Polygon
    [JOYOI] 1051 选课
    poj 1845 数论(唯一分解定理+分治法求等比数列前n项的和mod m的值)
    poj 2418 bst统计字符串
    hdu 3791 二叉排序树
    hdu 3999 二叉排序树
    toj 3711 水题
  • 原文地址:https://www.cnblogs.com/sulong/p/4801459.html
Copyright © 2011-2022 走看看