我是一个菜鸟,我只是在努力,2021正视自己,面对2021!

委托,文件流,扩展方法学习笔记

1. 委托使用

  (1) 什么是委托?(安全的函数指针)

    通俗:就是一个能存放符合某种格式(方法签名)的方法的指针的清单

  (2) 定义委托

       public delegate int AddDel(int a,int b);

  (3) 静态委托方法的实现,一个简单的加法实现

  (4) 实例委托方法的实现

  (5) 可以将这段代码放到Reflect中查看以下,你会发现一些特性的

  (6) 委托的使用:匿名方法

    1)如果在程序中方法非常简单,并且不怎么重复使用,这就考虑做成匿名方法

       2)匿名方法:第一必须有delegate关键字,后面紧跟方法参数的签名,后面是方法体

  (7) Lambda表达式继续简化

    1) => Lambda的标记,前面是方法参数的签名,后面是方法体

2.扩展方法

  (1) this:关键字是对那个类型进行扩展,必须指定一个类型,在使用扩展方法的时候,this指定的参数不用传递参数

  (2)在一个控制台项目中新建一个类ListExt.cs,代码如下:

     (3)在Main方法中的代码是:

3. 泛型委托

  (1) Reflect中查看Func方法:public delegate TResult Func<in T, out TResult>(T arg);,带两个参数的

       1)封装一个具有一个参数并返回 TResult 参数指定的类型值的方法。

       2)arg: 此委托封装的方法的参数。

       3)T: 此委托封装的方法的参数类型。

       4)TResult: 此委托封装的方法的返回值类型。

  (2)Reflect中查看Action方法:ublic delegate void Action<in T1, in T2>(T1 arg1, T2 arg2);

       1)封装一个方法,该方法具有两个参数并且不返回值。

       2)arg1:此委托封装的方法的第一个参数。

     3)arg2:此委托封装的方法的第二个参数。

     4)T1: 此委托封装的方法的第一个参数类型。

     5)T2:此委托封装的方法的第二个参数类型。

4. FileStream文件流

  (1) FileStream对象表示在磁盘或者网络路径上执行文件的流

  (2) 使用FileStream类对文件系统上的文件进行读取,写入,打开和关闭操作

  (3) FileStream对输入输出进行缓冲,从而提高性能

  (4) 为什么不使用File.ReadAllText()?好处之一就是:对于大文件来说,FIleStream可以对文件采取分段读取,即每次只读到一部分到内存里面

  (5) 字符串和字节数组的转换

       1)字节数组转换成字符串:String

              System.Text.Encoding.UTF8.GetString(byte[])

       2)字符串转换成字节数组:byte[]

              System.Text.Encoding.UTF8.GetButes(String)

  (6)文件读写的案例代码:只作为参考,可自行研究

posted @   Kencery  阅读(459)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
友情链接:初心商城
点击右上角即可分享
微信分享提示