小编Sou*_*der的帖子

如何在 .NET 4.7 中定义具有命名字段的元组?

我试图让一个函数返回一个带有命名字段的 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 中,但我已使用 …

.net vb.net

5
推荐指数
1
解决办法
2477
查看次数

标签 统计

.net ×1

vb.net ×1