我试图让一个函数返回一个带有命名字段的 ValueTuple,而不是“Item1”、“Item2”等。
查看文档我有以下功能:
Public Function MyFunction() as (Success as Boolean, Results as Boolean)
Return (True, False)
end Function
Dim test = MyFunction()
If test.Success Then
'Do something with test.Result
End If
Run Code Online (Sandbox Code Playgroud)
这可以编译,但如果我在 if 语句上放置断点并查看“test”,它会显示其字段为“Item1”和“Item2”。它还在运行时抛出以下异常:
System.MissingMemberException: 'Public member 'Success' on type 'ValueTuple(Of Boolean,Boolean)' not found.'
Run Code Online (Sandbox Code Playgroud)
此外,该文档仅适用于“Option Strict Off”,但我们在代码中将其打开,并且该代码无法在 Option Strict On 的情况下进行编译。
在 Option Strict On 的情况下,我尝试了以下操作:
Dim test as ValueTuple(Of Success as Boolean, Results as Boolean) = MyFunction()
Run Code Online (Sandbox Code Playgroud)
然而,它在“成功”时给出编译时错误,表示它未定义。
我的语法有错误吗?在设置 Option Strict On 时,如何定义一个变量用作具有命名字段的函数的输出?
如果相关,我的项目位于 .NET 4.6.1 中,但我已使用 …