泛型是泛+型,目的是为了节省代码的重复,可以复用代码。
场景:
定义了两个方法(函数)
public int DisplayMyInteger(int myInt)
{
return myInt;
}
public string DisplayMyString(string myStr)
{
return myStr;
}
上面如果最终调用函数
DisplayMyInteger(2.5),就会报错,原因就是2.5并不是整型int
所以现在的思路就是要把这两个方法做成通用型。是除了 int,string的变量类型之外,函数结构和样子都几乎一样。所以发明了"泛型"
英文单词Generic Programming,查看百度翻译:
using System;
namespace GenericDemo
{
class GenericClassDemo<T>
{
public T Display(T value)
{
return value;
}
}
class Program
{
static void Main(string[] args)
{
GenericClassDemo<int> a = new GenericClassDemo<int>();
Console.WriteLine($"{a.Display(10086)}");
GenericClassDemo<string> b = new GenericClassDemo<string>();
Console.WriteLine($"{b.Display("I love China!")}");
GenericClassDemo<double> c = new GenericClassDemo<double>();
Console.WriteLine($"{c.Display(Math.PI)}");
}
}
}
场景:
using System;
using System.Collections;
namespace NonGenericDemo
{
class Program
{
static void Main(string[] args)
{
ArrayList myList = new ArrayList();
myList.Add(1);
myList.Add(2);
myList.Add("I love China!");
foreach (int a in myList)
{
Console.WriteLine((int)a);
}
Console.ReadKey();
}
}
}