中国领先的工业平台

返回贤集网 返回微头条
贤集网技术微头条APP获取

拒绝“高冷”词汇!初学C#中实用的泛型!

 山东大明消毒科技有限公司

下载贤集网APP入驻自媒体

下面我们看看C#中简单易学的泛型。

首先,我写了一个这样的方法 ---- Say(string spk),并在主函数中进行调用:

1 namespace TestCode

2 {

3 class Program

4 {

5 static void Main(string[] args)

6 {

7 Say("我饿了!");

8 }

9

10 public static void Say(string spk)

11 {

12 Console.WriteLine("我说:" + spk);

13 }

14 }

15 }

复制代码

如果,我说:123,则需要另一个方法 ---- Say(int spk),并在主函数中进行调用:

1 namespace TestCode

2 {

3 class Program

4 {

5 static void Main(string[] args)

6 {

7 Say("我饿了!");

8 Say(123);

9 }

10

11 public static void Say(string spk)

12 {

13 Console.WriteLine("我说:" + spk);

14 }

15

16 public static void Say(int spk)

17 {

18 Console.WriteLine("我说:" + spk);

19 }

20 }

21 }

复制代码

这样便完成了我的需求。你会发现,两个方法除了“形参”数据类型不同外,其他都一个样,这就是方法的“重载”。

好了,回归正题。爱动脑子的你,到这里,肯定会想:不就是数据类型不同嘛,干嘛写两遍基本一模一样的方法呢?真TM费事,怎么合成一个呢?

好在,微软已经帮你先前一步实现了你这个需求,这就是“泛型”(Generices),我自己理解就是:“涵盖了广泛(所有)的数据类型”。

这样,我把代码改成:

1 namespace TestCode

2 {

3 class Program

4 {

5 static void Main(string[] args)

6 {

7 Say<string>("我饿了!");

8 Say<int>(123);

9 }

10

11 public static void Say<T>(T spk)

12 {

13 Console.WriteLine("我说:" + spk);

14 }

15 }

16 }

复制代码

完成,这就是“泛型”,基本格式就这样,比对着看一下,聪明的你很快就能看懂了,思想就是:可以接受任何数据类型的“实参”,我调用方法时再告诉计算机 -----“我要表达的内容,其数据类型是什么”。

若有返回类型,那把void改为T。用T作为数据类型去定义变量。

当你熟悉了泛型的基本用法,你就可以去尝试更多的地方去使用泛型!

初写博客,会有许许多多瑕疵,希望广大园友能够为我指出,不吝赐教!我喜欢的表达的风格是极为通俗,形象且顺应思路走向,用最简单、直白的方式解决“看似”最复杂的问题。


最新回复

还没有人回复哦,抢沙发吧~

发布回复

为您推荐

热门交流