可序列化公式 2.1.0

dotnet add package SerializableFormula --version 2.1.0                
NuGet\Install-Package SerializableFormula -Version 2.1.0                
此命令旨在在 Visual Studio 的包管理器控制台中使用,因为它使用了 NuGet 模块的 Install-Package 版本。
<PackageReference Include="SerializableFormula" Version="2.1.0" />                
对于支持 PackageReference 的项目,将此 XML 节点复制到项目文件以引用此包。
paket add SerializableFormula --version 2.1.0                
#r "nuget: SerializableFormula, 2.1.0"                
#r 指令可以用于 F# Interactive 和 Polyglot Notebooks。将其复制到交互式工具或脚本的源代码中以便引用包。
// Install SerializableFormula as a Cake Addin
#addin nuget:?package=SerializableFormula&version=2.1.0

// Install SerializableFormula as a Cake Tool
#tool nuget:?package=SerializableFormula&version=2.1.0                

可序列化公式

可序列化公式是一个用于计算包含在方便的可序列化对象中的基于文本公式的快速库。添加您自己的自定义函数和变量。计算布尔值、字符串和浮点输出。

用法


初始化

首先创建一个简单的可序列化公式对象,设置所需的结果类型和公式文本。

	var newFormula = new SerializableFormula();
	newFormula.FormulaResultType = TResultType.Float;
	newformula.FormulaText = "Average(a, b, c, d, e)";

定义自定义变量

现在您必须定义函数的每个部分。上面的可序列化公式对象在不知道每个部分做什么之前无法处理每个函数。

定义您的变量

	var a = new FormulaVariable("a", 4);
	var b = new FormulaVariable("b", 2);
	var c = new FormulaVariable("c", 7);
	var d = new FormulaVariable("d", 10);
	var e = new FormulaVariable("e", 20);
	newFormula.AddVariable(a);
	newFormula.AddVariable(b);
	newFormula.AddVariable(c);
	newFormula.AddVariable(d);
	newFormula.AddVariable(e);

定义函数

定义 Average 函数

	var average = new TAverageFunction();
	newFormula.AddFunction(average);

Average 函数是随可序列化公式捆绑提供的自定义函数。稍后关于自定义函数的更多信息。

验证语法

使用 VerifySyntax() 函数返回一个包含以下内容的对象 SyntaxCheckResult

  • ExpressionError :包含友好错误信息的字符串
  • ExpressionErrorToken :仅包含错误文本标记的字符串
  • ExpressionErrorPosition :表示公式字符串中错误发生位置的整数

计算

最后,我们可以通过调用匹配输出类型的函数来获取我们的结果

  • var result = newFormula.CalculateText();
  • var result = newFormula.CalculateLogical();
  • var result = newFormula.CalculateArithmetic();

自定义函数

为了创建自定义函数,您只需创建一个新的对象来实现IFormulaFunction。一旦实现,您就可以使用AddFunction()方法将您的函数添加到可序列化公式中。

默认标识符

这些标识符始终是可序列化公式的组成部分。它们不能用于命名函数或变量。

布尔运算符

  • 异或(xor)
  • 真(true)
  • 假(false)
  • 非(not)
  • 如果(if)
  • 情况(case)

数学运算符

  • +
  • -
  • <
  • <=
  • >
  • >=
  • <>
  • =
  • /
  • *
  • ^
  • (
  • )
  • ,
乘积 兼容和附加的计算目标框架版本。
.NET net5.0 已计算。 net5.0-windows 已计算。 net6.0 已计算。 net6.0-android 已计算。 net6.0-ios 已计算。 net6.0-maccatalyst 已计算。 net6.0-macos 已计算。 net6.0-tvos 已计算。 net6.0-windows 已计算。 net7.0 已计算。 net7.0-android 已计算。 net7.0-ios 已计算。 net7.0-maccatalyst 已计算。 net7.0-macos 已计算。 net7.0-tvos 已计算。 net7.0-windows 已计算。 net8.0 已计算。 net8.0-android 已计算。 net8.0-browser 已计算。 net8.0-ios 已计算。 net8.0-maccatalyst 已计算。 net8.0-macos 已计算。 net8.0-tvos 已计算。 net8.0-windows 已计算。
.NET Core netcoreapp2.0 已计算。 netcoreapp2.1 已计算。 netcoreapp2.2 已计算。 netcoreapp3.0 已计算。 netcoreapp3.1 已计算。
.NET Standard netstandard2.0 兼容。 netstandard2.1 已计算。
.NET Framework net461 已计算。 net462 已计算。 net463 已计算。 net47 已计算。 net471 已计算。 net472 已计算。 net48 已计算。 net481 已计算。
MonoAndroid monoandroid 已计算。
MonoMac monomac 已计算。
MonoTouch monotouch 已计算。
Tizen tizen40 已计算。 tizen60 已计算。
Xamarin.iOS xamarinios 已计算。
Xamarin.Mac xamarinmac 已计算。
Xamarin.TVOS xamarintvos 已计算。
Xamarin.WatchOS xamarinwatchos 已计算。
兼容的目标框架
包含的目标框架(在包中)
学习有关 目标框架.NET Standard 的更多信息。

NuGet 包 (1)

显示依赖SerializableFormula的顶部1个 NuGet 包

下载
WPFFormulaBox

一个承载可序列化公式的 WPF 组件

GitHub 仓库

此包没有用于任何流行的 GitHub 仓库。

版本 下载 最后更新
2.1.0 245 4/19/2023
2.0.0 147 4/18/2023
1.10.0 311 12/16/2022
1.9.0 319 11/14/2022
1.8.1 420 3/1/2021
1.8.0 431 3/1/2021 1.8.0 已弃用,因为它存在关键错误。
1.7.1 1,003 7/17/2018
1.7.0 912 7/16/2018
1.6.1 1,309 5/14/2018
1.6.0 1,223 5/14/2018
1.4.0 1,497 5/2/2018
1.3.0 1,016 5/2/2018
1.2.0 965 4/30/2018
1.1.0 1,121 4/30/2018
1.0.0 1,551 4/28/2018

解决了 "not" 运算符的问题。