千家信息网

C#泛型代码块怎么使用

发表于:2024-10-21 作者:千家信息网编辑
千家信息网最后更新 2024年10月21日,这篇文章主要讲解了"C#泛型代码块怎么使用",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"C#泛型代码块怎么使用"吧!C# 泛型是一种类型占位符,或称之
千家信息网最后更新 2024年10月21日C#泛型代码块怎么使用

这篇文章主要讲解了"C#泛型代码块怎么使用",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"C#泛型代码块怎么使用"吧!

C# 泛型是一种类型占位符,或称之为类型参数。我们知道在一个方法中,一个变量的值可以作为参数,但其实这个变量的类型本身也可以作为参数。泛型允许我们在调用的时候再指定这个类型参数是什么。在.net中,泛型能够给我们带来的两个明显好处是--类型安全和减少装箱、拆箱。通过泛型可以定义类型安全类,而不会损害类型安全、性能或工作效率。您只须一次性地将服务器实现为一般服务器,同时可以用任何类型来声明和使用它。为此,需要使用 ﹤ 和 ﹥ 括号,以便将一般类型参数括起来。例如,可以按如下方式定义和使用一般堆栈:

public class Stack  {     T[] m_Items;      public void Push(T item)     {...}     public T Pop()     {...}  }  Stack stack = new Stack();  stack.Push(1);  stack.Push(2);  int number = stack.Pop();

C# 泛型代码块

显示一般堆栈的完整实现。将代码块 1 与代码块 2 进行比较,您会看到,好像 代码块 1 中每个使用 Object 的地方在代码块 2 中都被替换成了 T,除了使用一般类型参数 T 定义 Stack 以外:

public class Stack  {...}

在使用一般堆栈时,必须通知编译器使用哪个类型来代替一般类型参数 T(无论是在声明变量时,还是在实例化变量时):

Stack stack = new Stack();

编译器和运行库负责完成其余工作。所有接受或返回 T 的方法(或属性)都将改为使用指定的类型(在上述示例中为整型)。

C# 泛型代码块之一般堆栈

public class Stack  {     readonly int m_Size;      int m_StackPointer = 0;     T[] m_Items;     public Stack():this(100)     {}     public Stack(int size)     {        m_Size = size;        m_Items = new T[m_Size];     }     public void Push(T item)     {        if(m_StackPointer ﹥= m_Size)            throw new StackOverflowException();        m_Items[m_StackPointer] = item;        m_StackPointer++;     }     public T Pop()     {        m_StackPointer--;        if(m_StackPointer ﹥= 0)        {           return m_Items[m_StackPointer];        }        else       {           m_StackPointer = 0;           throw new InvalidOperationException(             "Cannot pop an empty stack");        }     }  }

注 T 是一般类型参数(或类型参数),而一般类型为 Stack。Stack 中的 int 为类型实参。

该编程模型的优点在于,内部算法和数据操作保持不变,而实际数据类型可以基于客户端使用服务器代码的方式进行更改。

感谢各位的阅读,以上就是"C#泛型代码块怎么使用"的内容了,经过本文的学习后,相信大家对C#泛型代码块怎么使用这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

类型 代码 参数 C# 变量 堆栈 安全 服务器 学习 服务 内容 数据 方式 方法 编译器 工作 编译 明显 为此 一次性 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 做软件开发工资一般多少 服务器怎么查看telnet状态 漫画数据库文档百度云 数据库安全保护是什么意思 网络安全与网络安全素养 如何制作一份优秀的数据库 苏州erp软件开发哪家好 战时网络安全龙头股 藏宝阁不同服务器能交易吗 浙江瑞金网络技术有限公司 网络技术学校什么时候开学 软件开发项目数据 网络安全小板报 网络安全宣传周个人主要事迹 维普数据库查期刊 游戏软件开发公司ppt AUTOTUNE插件软件开发 简御互联网科技上海有限公司 天津域速通网络技术有限公司 山寨笔记本电脑软件开发 吉林调度服务器生产 商丘软件开发税务筹划哪些形式 嘉定区新能源软件开发工艺 打印服务器安卓 汽车软件开发困局 企业网络安全论文参考文献标注 公安网络安全视频会 国家网络安全宣传周提示 中小学校园网络安全责任书 网络安全 宣传志愿服务活动
0