泛型值变量是一种类型的变量,可以存储任何类型的数据,包括 文本、数字、日期和数组,并且是 UiPath Studio 特有的 。
为了执行某些操作,泛型值变量会自动转换为其他类型。但是,小心地使用这些类型的变量是很重要的,因为 它们的转换可能并不总是正确的。
UiPath Studio 有一种泛型值变量的自动转换机制,您可以通过仔细定义它们的表达式来引导它们达到预期的结果。请记住表达式中的第一个元素的类型被用作进行类型的指引。例如,当您尝试添加两个泛值变量时,如果表达式中的第一个变量被定义为字符串,则结果是字符串串接。如果它被定义为整数,则结果是它们的和。
支持的 .NET 方法
名称 : CompareTo
· Function GenericValue.CompareTo(other As GenericValue) As Integer
· Function GenericValue.CompareTo(obj As Object) As Integer
Contains
· Function GenericValue.Contains(other As String) As Boolean
用于检查字符串变量是否包含某个子字符串。例如,如果要检查一个句子是否包含特定的单词,表达式应该写为 [字符串变量].Contains("子字符串"), 其中 [字符串变量] 就是应该包含被检索的文本的泛型变量
注意:当将此方法与数据类型 int、Float或 boolen 的泛值变量一起使用时,数据将自动转换为字符串并相应地进行处理。
Equals
· Function GenericValue.Equals(other As GenericValue) As Boolean
· Function GenericValue.Equals(obj As Object) As Boolean
GetHashCode
· Function GenericValue.GetHashCode() As Integer
GetType
· Function Object.GetType() As Type
GetTypeCode
· Function GenericValue.GetTypeCode() As TypeCode
IndexOf
· Function GenericValue.IndexOf(value As String) As Integer
· Function GenericValue.IndexOf(value As String, comparisonType As StringComparison) As Integer
· Function GenericValue.IndexOf(value As String, startIndex As Integer) As Integer
· Function GenericValue.IndexOf(value As String, startIndex As Integer, comparisonType As StringComparison) As Integer
描述
用于返回包含在字符串变量中的子字符串的索引。例如,如果要在句子“查找‘Locate’”中找到单词“Locate”的索引,表达式应该是 [Sentencevariable].indexof(‘Locate’),其中 [Sentencevariable] 是包含句子的泛值变量,而“Locate”是要搜索的词语。
注意:当将此方法与数据类型 int、Float 或 boolean 的泛值变量一起使用时,数据将自动转换为字符串并相应地进行处理。
Length
· Function GenericValue.Lenght() As Integer
[点击这里查看详情](https://msdn.microsoft.com/en-us/library/system.string.length(v=vs.110)
描述
用于返回字符串变量中的字符数。例如,如果您想知道一个单词有多少字母,表达式应该是[WordVariable].length,其中 [WordVariable] 是包含该单词的泛型值变量。
注意:当将此方法与数据类型 int、Float 或 Boolean 的泛值变量一起使用时,数据将自动转换为字符串并相应地进行处理。
Replace
· Function GenericValue.Replace(oldValue As String, new value As String) As String
用来替换包含在字符串变量中的数据。例如,如果你想将一个本地文件的路径 C:\ExampleFolder\Main.xaml 改为对应的服务器文件路径:C:/ExampleFolder/Main.xaml,那么表达式应该为 [PathVariable].Replace("","/"),而 [PathVariable] 应为包含路径的泛值变量,"\" 是将要转换成 "/" 的字符串。
注意:当将此方法与数据类型 int、Float 或 Boolean 的泛值变量一起使用时,数据将自动转换为字符串并相应地进行处理。
Split
· Function GenericValue.Split(ParamArray separator As Char()) As String()
· Function GenericValue.Split(ParamArray separator As String()) As String()
· Function GenericValue.Split(separator As Char(), options As StringSplitOptions) As String()
· Function GenericValue.Split(separator As String(), options As StringSplitOptions) As String()
用于从字符串变量中返回子字符串。例如,假如你想从一个 MM.DD.YYYY 格式的日期中导出年份,对应的表达式应该是 [DateVariable].Split(".".ToCharArray)(2),[DateVariable] 是存储日期的泛值变量,. 是作为分隔符的字符,.ToCharArray 创建数组来包含被分隔符拆分出来的元素,(2) 代表返回的元素在数组中的索引,在这个例子中是年份信息。
注意:当将此方法与数据类型 Int、Float或 Boolean 的泛值变量一起使用时,数据将自动转换为字符串并相应地进行处理。
Substring
· Function GenericValue.Substring(startIndex As Integer) As String
· Function GenericValue.Substring(startIndex As Integer, length As Integer) As String
用于返回一个被包含在字符串变量中的子字符串。例如,如果你想从 There are 100 machines available 这个句子中导出一个单词,对应的表达式应该为 [SentenceVariable].Substring(10,3), [SentenceVariable] 是泛值类型的变量,10 是子字符串第一个字符的索引, 3 是子字符串的长度。在这个例子中,返回的结果是 "100"
注意:当将此方法与数据类型 Int、Float或boole的泛值变量一起使用时,数据将自动转换为字符串并相应地进行处理。
ToBoolean
· Function GenericValue.ToBoolean(provider As IFormatProvider) As Boolean
ToByte
· Function GenericValue.ToByte(provider As IFormatProvider) As Byte
ToChar
· Function GenericValue.ToChar(provider As IFormatProvider) As Char
ToDecimal
· Function GenericValue.ToDecimal(provider As IFormatProvider) As Decimal
· Function GenericValue.ToDecimal(format As NumberStyles) As Decimal
ToDouble
· Function GenericValue.ToDouble(provider As IFormatProvider) As Double
· Function GenericValue.ToDouble(format As NumberStyles) As Double
ToInt
· Function GenericValue.ToInt(culture As IFormatProvider) As Integer
· Function GenericValue.ToInt() As Integer
描述
将制定的值转换成可空的整型
注意 将这个方法用于 Boolean 类型的泛值变量时,"True" 和 "False" 会分别转换成 1 和 0。
ToInt16
· Function GenericValue.ToInt16(provider As IFormatProvider) As Short
注意 将这个方法用于 Boolean 类型的泛值变量时,"True" 和 "False" 会分别转换成 1 和 0。
ToInt32
· Function GenericValue.ToInt32(provider As IFormatProvider) As Integer
注意 将这个方法用于 Boolean 类型的泛值变量时,"True" 和 "False" 会分别转换成 1 和 0。
ToInt64
· Function GenericValue.ToInt64(provider As IFormatProvider) As Long
注意 将这个方法用于 Boolean 类型的泛值变量时,"True" 和 "False" 会分别转换成 1 和 0。
ToLower
· Function GenericValue.ToLower() As String
注意 当将此方法与数据类型 Int、Float 或 Boolean 的泛值变量一起使用时,数据将自动转换为字符串并相应地进行处理。
ToLowerInvariant
· Function GenericValue.ToLowerInvariant() As String
注意 当将此方法与数据类型 Int、Float 或 Boolean 的泛值变量一起使用时,数据将自动转换为字符串并相应地进行处理。
ToSByte
· Function GenericValue.ToSByte(provider As IFormatProvider) As SByte
ToSingle
· Function GenericValue.ToSingle(provider As IFormatProvider) As Single
ToString
· Function GenericValue.ToString(formatProvider As IFormatProvider) As String
· Function GenericValue.ToString(format As String, formatProvider As IFormatProvider) As String
· Function GenericValue.ToString() As String
ToType
· Function GenericValue.ToType(conversionType As Type, provider As IFormatProvider) As Object
ToUInt16
· Function GenericValue.ToUInt16(provider As IFormatProvider) As UShort
Note: When using this method with a GenericValue variable of data type Boolean, the "True" and "False" values are converted to 1 and 0, respectively.
注意 将这个方法用于 Boolean 类型的泛值变量时,"True" 和 "False" 会分别转换成 1 和 0。
ToUInt32
· Function GenericValue.ToUInt32(provider As IFormatProvider) As UInteger
注意 将这个方法用于 Boolean 类型的泛值变量时,"True" 和 "False" 会分别转换成 1 和 0。
ToUInt64
· Function GenericValue.ToUInt64(provider As IFormatProvider) As Ulong
注意 将这个方法用于 Boolean 类型的泛值变量时,"True" 和 "False" 会分别转换成 1 和 0。
ToUpper
· Function GenericValue.ToUpper() As String
注意 将这个方法用于 Boolean 类型的泛值变量时,"True" 和 "False" 会分别转换成 1 和 0。
ToUpperInvariant
· Function GenericValue.ToUpperInvariant() As String
注意 将这个方法用于 Boolean 类型的泛值变量时,"True" 和 "False" 会分别转换成 1 和 0。
Trim
· Function GenericValue.Trim(ParamArray trimChars As Char()) As String
· Function GenericValue.Trim() As String
注意 当将此方法与数据类型 Int、Float 或 Boolean 的泛值变量一起使用时,数据将自动转换为字符串并相应地进行处理。
TrimEnd
· Function GenericValue.TrimEnd(ParamArray trimChars As Char()) As String
注意 当将此方法与数据类型 Int、Float 或 Boolean 的泛值变量一起使用时,数据将自动转换为字符串并相应地进行处理。
TrimStart
· Function GenericValue.TrimStart(ParamArray trimChars As Char()) As String
注意 当将此方法与数据类型 Int、Float 或 Boolean 的泛值变量一起使用时,数据将自动转换为字符串并相应地进行处理。
Example of Using a GenericValue Variable
使用泛值变量的示例
为了演示泛型值变量是如何工作的,让我们创建一个执行不同操作的自动化操作,其结果取决于定义它们的表达式的方式。我们创建两个不同数据类型的泛值变量,并在 Output 面板中显示结果。
创建一个新的项目
插入流程图
注:官网文档漏了这一步
- 创建三个 GenericValue 变量: Int , Str 和 Result
注意:UiPath 中,变量名不区分大小写
- 在 Int 变量的 Default 列中,键入12,对于 str 变量,键入"34"。第一个变量被解释为整数,而第二个变量被解释为字符串。
- 添加一个 Assign 到 Designer 面板并且连接到 Start 节点。
在 Properties 面板的 To 字段,键入变量名 Result。
在 Value 字段中,键入 Int + Str.
添加一个 Write Line 活动并将其连接到 Assign 活动
9.在 Properties 面板中的 Text 字段中,键入变量名 Result
项目此时应该如下截图所示:
- 点击 F5 运行。注意,此时 Output 面板显示了两个数字相加的结果。
- 再回到先前添加的 Assign 活动并将 Value 改为 Str+ Int,即 将两个变量的顺序对调 。这个项目现在应该如下所示:
- 点击 F5 运行程序。注意到, Output 面板将显示这两个数字的拼接在一起。
这意味着 UiPath Studio 接受表达式中定义的第一个元素作为执行操作的指南。如果表达式中的第一个元素是作为整数填充的泛值变量,UiPath Studio 将执行元素的相加操作。
如果表达式中的第一个元素是字符串或作为字符串填充的泛型值变量,UiPath Studio 将执行元素的字符串连接动作
返回目录
UiPath 常见问题及解决办法汇总
更多 UiPath 相关的资讯,请关注公众号:流程自动化机器人教程
由于简书禁止直接在文章中插入公众号二维码,请点击 这里 了解添加该公众号的细节。