maestro
latest
false
重要 :
新发布内容的本地化可能需要 1-2 周的时间才能完成。
UiPath logo, featuring letters U and I in white

Maestro 用户指南

上次更新日期 2026年3月3日

将 C# 转换为 JavaScript 表达式

用途

此页面帮助您将现有 Maestro 流程从 C# 表达式转换为 JavaScript 表达式。UiPath 将在 Maestro 中弃用 C# 表达式语言,以提供统一的脚本体验、现代语法突出显示以及与其他 Automation Cloud 组件更广泛的兼容性。

此更改意味着什么

  • C# 表达式可继续运行并受到完全支持,直到它们在未来的版本中被正式移除。
  • 新的 Maestro 项目和功能现在默认使用 JavaScript 表达式。
  • 我们建议您将现有表达式迁移到 JavaScript,以确保向前兼容性。

如果您看到黄色警示消息,则意味着您的项目当前使用的是旧版 C# 表达式编辑器。您可以继续使用现有的表达式,但我们建议开始将其迁移到 JavaScript。

表达式编辑器提示警告 java script

关键差异一览

概念C# 语法JavaScript 语法注意
字符串连接"Hello " + name"Hello " + name在两种语言中完全相同。
大小写转换userName.ToUpper()userName.toUpperCase()方法名称使用小写 toUpperCase
平等amount == 100amount === 100=== 表示严格相等。
null 或为空string.IsNullOrEmpty(x)!x 或者 x === ""JavaScript 将 nullundefined 视为假值。
集合长度items.Countitems.length属性名称不同。
条件表达式amount > 5000 ? "High" : "Low"amount > 5000 ? "High" : "Low"两种语言的语法相同。
字符串插值$"Hello {name}"`Hello ${name}`对模板字面量本使用反引号 (`)。
当前日期DateTime.Nownew Date()使用 JavaScript Date 对象。
MathMath.Round(x)Math.round(x)在 JavaScript 中,函数名称为小写。

如何更新现有的表达式

  1. 为每个受影响的属性或网关条件打开表达式编辑器。
  2. 复制 C# 表达式并使用 JavaScript 语法进行调整(请参阅表格“主要差异一览”)。
  3. 在编辑器中使用“Test”来确认结果。
  4. 保存并重新发布您的流程。
提示:

迁移复杂的公式时,请验证变量名称,并确保在比较所有字符串时都使用 ===

迁移示例

之前 (C#): vars.total = items.Sum(x => x.Price); if (vars.total > 10000) vars.priority = "High";

之后 (JavaScript): vars.total = items.reduce((sum, x) => sum + x.Price, 0); if (vars.total > 10000) vars.priority = "High";

经常使用的等效项

常见操作C#JavaScript
检查多个条件(a && b) || c(a && b) || c
解析数字int.Parse(x)parseInt(x)
转换为字符串value.ToString()String(value)
舍入到 2 位小数Math.Round(x, 2)Number(x.toFixed(2))
比较忽略大小写name.Equals("UIPath", StringComparison.OrdinalIgnoreCase)name.toLowerCase() === "uipath"

测试提示

  • 使用表达式编辑器中的“Test”按钮确认输出。
  • 观察 null 处理和类型强制(=====)之间的差异
  • 字符串和数字在 JavaScript 中自动转换;如果准确性至关重要,请使用显式转换。

后续步骤

  • 开始使用 JavaScript 编写新表达式。
  • 使用本指南随时更新现有流程。
  • 规划迁移事宜,使用 Autopilot 或手动翻译均可。
  • 跟踪未来的发布说明,以了解最终移除 C# 表达式的相关信息。

此页面有帮助吗?

连接

需要帮助? 支持

想要了解详细内容? UiPath Academy

有问题? UiPath 论坛

保持更新