行为型/解释器模式/InterpreterService.cs
(开头部分) 5KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using Common.Extension;
using DesignModeConsole.行为型.解释器模式.告警规则简单;
using DesignModeConsole.行为型.解释器模式.告警规则进阶;
namespace DesignModeConsole.行为型.解释器模式;
/// <summary>
/// 解释器模式
/// </summary>
public class InterpreterService : IService
{
public void Main()
{
//// 加减乘除示例
//SampleOperator("4 5 6 7 + * +");
// 加减乘除封装示例
//var interpreter = new ExpressionInterpreter1();
//interpreter.SampleOperator("4 5 6 7 + * +");
// 告警
//AlarmRuleHandler();
AlertRuleHandler2();
}
/// <summary>
/// 实现一个简单的语法算法
/// 4 5 6 7 - * +
/// 实现(4-5)*6+7
/// </summary>
public void SampleOperator(string str)
{
var list = new List<int>();
var strArray = str.Split(" ");
for (var i = 0; i < (strArray.Length + 1) / 2; i++)
{
list.Add(strArray[i].ToInt());
}
var startIndex = (strArray.Length + 1) / 2;
for (var i = startIndex; i < strArray.Length; i++)
{
if (strArray[i] is not "+" and not "-" and not "*" and not "/")
{
throw new NotSupportedException("不支持的操作符");
}
var number1 = list[0];
var number2 = list[1];
list.RemoveAt(0);
list.RemoveAt(0);
var result = strArray[i] switch
{
"+" => number1 + number2,
"-" => number1 - number2,
"*" => number1 * number2,
后面还有 78 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。