using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Threading;
namespace HelloWorld
{
class Holder<T>
{
T[] Vals = new T[3];
public Holder(T v0, T v1, T v2)
{
Vals[0] = v0;
Vals[1] = v1;
Vals[2] = v2;
}
public T[] GetValues() { return Vals;}
}
/*
* 泛型类的扩展方法
* 必须声明为static
* 必须是静态类的成员
* 第一个参数类型中必须有关键字this,后面是扩展的泛型类的名字
* 给出了一个叫Print的扩展方法,扩展了叫做Holder<T>的泛型类
*
*/
static class ExtendHolder
{
public static void Print<T>(this Holder<T> h)
{
T[] vals = h.GetValues();
Console.WriteLine("{0},\t{1},\t{2}",vals[0],vals[1],vals[2]);
}
}
class Program
{
static void Main(string[] args)
{
var intHolder = new Holder<int>(3,5,7);
var stringHolder = new Holder<string>("first","second","third");
intHolder.Print();
stringHolder.Print();
}
}
}
C#泛型类的扩展方法
最新推荐文章于 2023-11-07 22:31:34 发布