Skip to content

FP 对象FP扩展函数

王学懿 edited this page May 24, 2024 · 2 revisions

对象FP扩展函数

在数值、对象上扩展出来的函数,方便直接编写Fp代码,例:

//简单示例
10.Do(() => num = 10 + 1)  //对象FP扩展 给10挂接一个函数并转换为函数
.Do(()=> num = num * 2)    //这函数的扩展了


//复合示例-同步
byte a = 0x63;      //c的16进制
string result = a
	.Pipe(t => (int)t)                  //byte -> int
	.PipeIf(true, t => t + 1)           //加1后变成100 d的asc码
    .Pipe(t => (char)t)                 //int -> char
    .Pipe(t => new char[1] { t })       //char -> char[]
    .Pipe(t => new string(t));          //char[] -> string
Assert.Equal("d", result);

//复合示例-异步
//尽请期待...

支持的扩展函数

FP扩展函数一样有许多操作函数,具体的推荐按F12查看定义

函数 作用
Pipe 管道,适用于对象需要做处理的时候
PipeIf 有条件管道,表意同Pipe,当满足条件时执行后续函数
PipeAsync 异步管道,表意同Pipe,支持Pipe一个异步的函数
Do 作用和Pipe系列一样,适用于对象需要后续使用,不对当前对象进行修改
DoIf 有条件Do,表意同Do,当满足条件时执行后续函数
ToFp To系列,将对象转换为常量函数