gpt4 book ai didi

vb.net - 具有多个输出的 VB 函数 - 结果分配

转载 作者:行者123 更新时间:2023-12-04 02:53:01 25 4
gpt4 key购买 nike

我知道 VB 中的函数多重分配没有直接的方法。 ,但有我的解决方案 - 好不好,你会如何做得更好?

我需要什么(我将如何在 python 中做到这一点,只是一个例子)

def foo(a)    ' function with multiple output
return int(a), int(a)+1

FloorOfA, CeilOfA = foo(a) 'now the assignment of results

我如何在VB中做到这一点:
Public Function foo(ByVal nA As Integer) As Integer() ' function with multiple output
Return {CInt(nA),CInt(nA)+1}
End Function

Dim Output As Integer() = foo(nA) 'now the assignment of results
Dim FloorOfA As Integer = Output(0)
Dim CeilOfA As Integer = Output(1)

最佳答案

对于 future 的读者,VB.NET 2017 及更高版本现在支持将值元组作为语言功能。你声明你的函数如下:

Function ColorToHSV(clr As System.Drawing.Color) As (hue As Double, saturation As Double, value As Double)
Dim max As Integer = Math.Max(clr.R, Math.Max(clr.G, clr.B))
Dim min As Integer = Math.Min(clr.R, Math.Min(clr.G, clr.B))

Dim h = clr.GetHue()
Dim s = If((max = 0), 0, 1.0 - (1.0 * min / max))
Dim v = max / 255.0

Return (h, s, v)
End Function

你这样称呼它:
Dim MyHSVColor = ColorToHSV(clr)
MsgBox(MyHSVColor.hue)

请注意 VB.NET 如何创建名为 hue 的公共(public)属性从被调用函数的返回类型推断。 Intellisense 也适用于这些成员。

但是请注意,您需要以 .NET Framework 4.7 为目标才能使其正常工作。或者,您可以安装 System.ValueTuple (作为 NuGet 包提供)在您的项目中利用此功能。

关于vb.net - 具有多个输出的 VB 函数 - 结果分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16436925/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com