更新 MacroMath
+31
-19
@@ -23,6 +23,7 @@
|
||||
* ● GetHeightOfRoundArch:获取圆拱高度
|
||||
* ● GetListFormAToB:获取从A到B的列表
|
||||
* ● LerpTransform:创建lerp矩阵
|
||||
* ● GetFraction:将一个值转为分数形式
|
||||
|
||||
# 文本模块
|
||||
|
||||
@@ -48,39 +49,50 @@ ListToString
|
||||
|
||||
XericLibrary里的所有需要文本拼接的地方都会用到这个成员,请严格按照池化对象操作流程使用,如果错误的使用释放的对象,可能会造成意外的错误。
|
||||
|
||||
下面是用例:
|
||||
用法:
|
||||
```
|
||||
// 旧版用法
|
||||
public string GetString()
|
||||
{
|
||||
StringBuilder sb = MacroMath.GetStrBuilder();
|
||||
sb.Append("something...");
|
||||
return MacroMath.ReleaseStrBuilder(sb);
|
||||
return MacroMath.ReleaseStrBuilder(sb); // 释放这个构建器可以立刻获得里面的内容。
|
||||
}
|
||||
|
||||
// 新版用法
|
||||
public string GetString()
|
||||
{
|
||||
using (MacroMath.GetStringBuilder(out var sb))
|
||||
{
|
||||
sb.Append("something...");
|
||||
} // using作用域结束后stringbuild会自动释放
|
||||
}
|
||||
```
|
||||
可以看到,在对象池上释放这个构建器对象可以立刻获得里面的内容,可以省略部分内容。
|
||||
|
||||
另外还有一个文本拼接器单例用法:
|
||||
另外还有一个文本拼接器单例:
|
||||
|
||||
```
|
||||
// 这个不是对象池,而是一个单例对象,可以随用随取,但是注意不要用在多线程中。
|
||||
MacroMath.CleanString(); // 先清空,避免有污染
|
||||
MacroMath.AppendString("some"); // 拼接单个文本
|
||||
MacroMath.BuildString("thing", "..."); // 拼接多个文本
|
||||
MacroMath.GetStringAndClear(); // 返回 something...
|
||||
```
|
||||
这个不是对象池,而是一个单例对象,可以随用随取。
|
||||
|
||||
## 链式语法的文本序列拼接。
|
||||
|
||||
提供`Join`扩展方法。用法与直接使用`string.Join()`类似。
|
||||
|
||||
```
|
||||
List<object> objects = new List<object>();
|
||||
objects.Join(obj => obj.ToString())
|
||||
|
||||
```
|
||||
|
||||
## 文本判断
|
||||
|
||||
空判断,空格判断,相等判断,字符集判断
|
||||
|
||||
## [文本包裹器](../wiki/TextBlockBuilder)
|
||||
|
||||
文本包裹器提供了一个可以在编译器中进行语法检查的功能,同时允许你将其当作一种模板字符串,向里面填充变量,委托,反射等用法。
|
||||
|
||||
## 其他用法
|
||||
|
||||
* join:和string.join类似,但可以直接在枚举器上链式调用,并且支持指定开头,结尾字符串
|
||||
```
|
||||
List<object> objects = new List<object>();
|
||||
objects.Join(obj => obj.ToString())
|
||||
```
|
||||
* InsertCommasAtEachIntervals:和`join`扩展类似,但是它只接受枚举器,返回一个在每个元素之间插入了一个逗号的枚举器
|
||||
* LimitStringLength:限制输出的文本数量,可以通过`availableRate`参数指定省略文本的位置,并在省略的文本除替换为 `replaceTruncateChars` 所代表的省略号。
|
||||
* SimpleWrap:对超出长度的文本插入换行符号
|
||||
* IsStringNullOrEmpty:支持链式调用的判断一个字符串是否为空
|
||||
* IsStringNullOrWhiteSpace:支持链式调用的判断一个字符串是否为空或由空格组成
|
||||
* IsSeparatelyCharEqual:支持链式调用地判断两个字符串是否相等,并忽略他们的空格 (方法逐字符比较低效,使用 `IsWordSequenceEqual ` 替换)
|
||||
|
||||
Reference in New Issue
Block a user