[C#基础学习]泛型 \<T>
泛型是在C++中就已经存在的功能,而C#也自然继承了这一个非常重要的功能。
定义方法:
- class [ClassName]<泛型类型>
- interface [InterfaceName]<泛型类型>
泛型类型就相当于一个变量名字,用来代替当前未知类型的名字,所以可以是任何名字
泛型的名字可以是任意名字,只不过常用规范为T。
class Temp<T> { public T value; } class Temp2<T1, T2, T3> { T1 a; T2 b; T3 c; }
调用时:
static void Main(string[] args) { Temp<int> t = new Temp<int>();//一但决定类型后就不可改变 t.value = ...;//赋值 Temp2<int, string, bool> }
接口也可以有泛型,和上述类似。
interface ITemp<T> { T value{get;set;} }
方法也可以有泛型
void swap<T>(ref T a, ref T b) { T temp = a; a = b; b = temp; } // Start is called before the first frame update void Start() { string a = "1"; string b = "2"; swap<string>(ref a, ref b); Debug.Log(a+" "+b); }
输出结果为
2 1
将输入类型改变为其他数据类型也一样能达到效果。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!