什么是泛型?
我们试试实现这个需求,给一个对象,然后返回 另一个同样的对象,先不管这个实用性,我们实现看看
首先是int型
private int Get(int a)
{
int result = a;
return result;
}
很好,成功实现,那如果是double型呢?
private double Get(double a)
{
double result = a;
return result;
}
不错,也实现了。那如果是string类型呢?
private string Get(string a)
{
string result = a;
return result;
}
很赞,如果我想各个类型都实现呢?发现什么问题了没?
代码几乎是一样的,怎么能更简便呢?
如果有个类型,可以暂时替代所有类型,待程序运行时自动根据参数解析来变成指定类型(重读3遍)
我们叫它通用类型 ,用个字母代表它 ,T
(Tong),然后使用<T>
来告诉这个方法,这个T是通用类型。
然后我们的代码就变成下面这样。
private T Get<T>(T a)
{
T result = a;
return result;
}
我们在主方法内调用试试
using System;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
var result = Get(1);
var result2 = Get(1d);
var result3 = Get("3");
Console.WriteLine(result);
Console.WriteLine(result2);
Console.WriteLine(result3);
}
private static T Get<T>(T a)
{
T result = a;
return result;
}
}
}
输出结果:
成功实现!
后记
本人不是大佬,只是道路先行者,在落河后,向后来的人大喊一声,这里有坑,不要过来啊!
纵然如此,依旧有人重复着落河,重复着呐喊······
个人博客网站 Blog
文章后续会在公众号更新,微信搜索 OneByOneDotNet 即可关注。
你的一分鼓励,我的十分动力,点赞免费,感恩回馈。喜欢就点赞评论吧,双击6666~