当前位置: 首页 > news >正文

C#高级语法_泛型

泛型的定义

泛型是一种程序特性,当我们使用泛型的时候,确切说定义的时候,是对这个类型不作出明确的规定。但是当我们使用的时候,必须明确规定,并且不能改变。

自定义泛型类测试

//自定义泛型类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace ConsoleApp1
{internal class MyStack<T>{private T[] stack;private int size;private int stackPoint;public MyStack(int size){this.size = size;stack = new T[size];this.stackPoint = -1;}/// <summary>/// 入栈/// </summary>/// <param name="item"></param>/// public void Push(T item){if (stackPoint >= size - 1){Console.WriteLine("栈空间已满");}else{stackPoint++;stack[stackPoint] = item;}}public T Pop(){T temp = stack[stackPoint];stackPoint--;return temp;}}
}//测试类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace ConsoleApp1
{internal class Program{static void Main(string[] args){TestMyStack();Console.ReadLine();}/// <summary>/// 测试出栈和入栈/// </summary>static void TestMyStack(){//创建泛型类的对象MyStack<int> stack1 = new MyStack<int>(5);//元素入栈stack1.Push(1);stack1.Push(2);stack1.Push(3);stack1.Push(4);stack1.Push(5);//元素出栈Console.WriteLine(stack1.Pop());Console.WriteLine(stack1.Pop());Console.WriteLine(stack1.Pop());Console.WriteLine(stack1.Pop());Console.WriteLine(stack1.Pop());MyStack<string> stack2 = new MyStack<string>(5);//元素入栈stack2.Push(".NET全栈课程25");stack2.Push(".NET全栈课程26");stack2.Push(".NET全栈课程27");stack2.Push(".NET全栈课程28");stack2.Push(".NET全栈课程29");//元素出栈Console.WriteLine(stack2.Pop());Console.WriteLine(stack2.Pop());Console.WriteLine(stack2.Pop());Console.WriteLine(stack2.Pop());Console.WriteLine(stack2.Pop()); }}
}
http://www.xdnf.cn/news/1283185.html

相关文章:

  • Vue 中的 Class 与 Style 绑定详解2
  • 基于 Spring Boot 的登录功能实现详解
  • 企业高性能 Web 服务部署实践(基于 RHEL 9)
  • sqli-labs通关笔记-第42关 POST字符型堆叠注入(单引号闭合 手工注入+脚本注入两种方法)
  • Rust学习笔记(一)|Rust初体验 猜数游戏
  • 从 GPT-2 到 gpt-oss:架构进步分析
  • 【lucene】文档id docid
  • 算法基础 1
  • 基于飞算JavaAI的日志监测系统开发实践:从智能生成到全链路落地
  • Spring-Security-5.7.11升级6.5.2
  • 机器学习-决策树(DecisionTree)
  • YOLOv6深度解析:实时目标检测的新突破
  • GESP2023年9月认证C++一级( 第三部分编程题(1)买文具)
  • vue3-pinia
  • 在 Ubuntu 中docker容器化操作来使用新建的 glibc-2.32
  • SQL 基础查询语句详解
  • Pytest项目_day12(yield、fixture的优先顺序)
  • 论文学习22:UNETR: Transformers for 3D Medical Image Segmentation
  • MFC C++ 使用ODBC方式调用Oracle数据库的详细步骤
  • 北京朝阳区中小学生信息学竞赛选拔赛C++真题
  • 电子电气架构 --- 软件定义汽车的驱动和挑战
  • [Element-plus]动态设置组件的语言
  • Oracle数据库中的Library cache lock和pin介绍
  • Redis 数据结构及特点
  • VMD例程(Matlab 2021b可直接使用)
  • C++方向知识汇总(三)
  • 【MySQL基础篇】:MySQL索引——提升数据库查询性能的关键
  • 【华为机试】648. 单词替换
  • Jmeter使用第二节-接口测试(Mac版)
  • Nestjs框架: RBAC基于角色的权限控制模型初探