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

c#难点整理2

1.对象池的使用

就是先定义一系列的对象,用一个,调一个。

 public class ObjectPool<T> where T : new()
 {
     private Queue<T> pool; // 用于存储对象的队列
     private int maxSize;   // 对象池的最大容量

     // 构造函数
     public ObjectPool(int maxSize)
     {
         this.maxSize = maxSize;
         pool = new Queue<T>(maxSize);
         InitializePool();
     }

     // 初始化对象池
     private void InitializePool()
     {
         for (int i = 0; i < maxSize; i++)
         {
             pool.Enqueue(new T()); // 创建对象并加入池中
         }
     }

     // 从池中获取对象
     public T GetObject()
     {
         if (pool.Count > 0)
         {
             return pool.Dequeue(); // 如果池中有对象,直接返回
         }
         else
         {
             Console.WriteLine("Pool is empty, creating new object.");
             return default(T);//用完了返回null
             //return new T(); // 如果池为空,创建新对象
         }
     }

     // 将对象归还到池中
     public void ReturnObject(T obj)
     {
         if (pool.Count < maxSize)
         {
             pool.Enqueue(obj); // 如果池未满,归还对象
         }
         else
         {
             Console.WriteLine("Pool is full, discarding object.");
         }
     }
 }

2.virtual的使用

父类方法有virtual,子类方法才可家override,但是子类方法其实不加override也可调用

3.CopyTo方法

相关文章:

  • windows下利用Ollama + AnythingLLM + DeepSeek 本地部署私有智能问答知识库
  • CVPR 2025 | 文本和图像引导的高保真3D数字人高效生成GaussianIP
  • 美国国家数据浮标中心(NDBC)
  • Leetcode刷题笔记1 图论part03
  • LangChain Chat Model学习笔记
  • 【Docker系列一】Docker 简介
  • 1、正点原子ZYNQ最小系统--GPIO之MIO控制LED笔记
  • 蓝桥杯高频考点——并查集(心血之作)
  • CI/CD(三) 安装nfs并指定k8s默认storageClass
  • 【C++】深入理解list迭代器的设计与实现
  • Java对象的hashcode
  • Fiddler抓包工具最快入门
  • 【005安卓开发方案调研】之Flutter+Dart技术开发安卓
  • 【PromptCoder + Trae】三分钟复刻 Spotify
  • 洛谷 P3228 [HNOI2013] 数列
  • 深度解读DeepSeek:开源周(Open Source Week)技术解读
  • 机器学习——KNN模型评价
  • 【用 Trace读源码】PlanAgent 执行流程
  • AMD公司
  • 附——教6
  • 央行:25日将开展6000亿元MLF操作,期限为1年期
  • 研究|和去年相比,人们使用AI的需求发生了哪些变化?
  • 2024年上海发生科技融资997起,位于全国第一
  • 商务部召开外资企业圆桌会
  • 王鹏任海南文昌市委书记
  • 展讯:漫游者秦龙和巫鸿的三本书