-
C#教程之C#教程之拒绝“高冷”词汇!初学C#中实用的泛型
本站最新发布 C#从入门到精通
试听地址 https://www.xin3721.com/eschool/CSharpxin3721/
试听地址 https://www.xin3721.com/eschool/CSharpxin3721/
初学C#,整天对着业务逻辑,写反反复复的“过程型”代码逻辑十分枯燥,不如用点新东西提升一下代码效率,让代码看起来更有逼格?!
好,下面我们看看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作为数据类型去定义变量。
当你熟悉了泛型的基本用法,你就可以去尝试更多的地方去使用泛型!
初写博客,会有许许多多瑕疵,希望广大园友能够为我指出,不吝赐教!我喜欢的表达的风格是极为通俗,形象且顺应思路走向,用最简单、直白的方式解决“看似”最复杂的问题。
栏目列表
最新更新
如何使用OS模块中的stat方法
Python os 模块
seek() 方法
python打开文件实例1
Python写入文件
什么是流?
文件操作如何进制逐行读取
Python相对路径
with创建临时运行环境
Python文件操作
.Net Standard(.Net Core)实现获取配置信息
Linux PXE + Kickstart 自动装机
Shell 编程 基础
Shell 编程 条件语句
CentOS8-网卡配置及详解
Linux中LVM逻辑卷管理
1.数码相框-相框框架分析(1)
Ubuntu armhf 版本国内源
Linux中raid磁盘阵列
搭建简易网站
access教程之Access简介
mysql 安装了最新版本8.x版本后的报错:
Mysql空间数据&空间索引(spatial)
如何远程连接SQL Server数据库的图文教程
复制SqlServer数据库的方法
搜索sql语句
sql中返回参数的值
sql中生成查询的模糊匹配字符串
数据定义功能
数据操作功能