返回数组/字典作为属性?

时间:2018-09-21 04:20:35

标签: vb.net

我有一个函数可以返回分配了特定键的字典:

Private Function GetScalingAnchorPoints() As Dictionary(Of String, Double)
    Dim x, y, w, h As Double
    Dim result As New Dictionary(Of String, Double)

    shape.GetBoundingBox(x, y, w, h, False)

    result.Add("TopAnchorX", y + h)
    result.Add("TopAnchorY", x + (w / 2))

    GetScalingAnchorPoints = result
End Function

然后在其他方法中,我将使用以下语法获取函数的结果:

Dim ScalingAnchor As Dictionary(Of String, Double)
ScalingAnchor = GetScalingAnchorPoints()
SetSize(ScalingAnchor("TopAnchorX"), ScalingAnchor("TopAnchorY"))

我想知道我是否可以将结果作为属性返回,而不是作为字典的键,所以我想使其像ScalingAnchor.TopAnchorX而不使之成为另一个公共类来存储财产?

1 个答案:

答案 0 :(得分:1)

您可以创建一个新类,但正如您所说,您要避免使用此选项(但可能是最好的选择)。否则,这可能对您有帮助:

Private Function GetScalingAnchorPoints() As Dictionary(Of String, Double)
Dim x, y, w, h As Double
Dim result As New Dictionary(Of String, Double)

shape.GetBoundingBox(x, y, w, h, False)

result.Add("TopAnchorX", y + h)
result.Add("TopAnchorY", x + (w / 2))

return result

结束功能

首先,我建议您在函数末尾添加一个return语句,以提高代码的可读性。

现在是时候在您的主代码中调用它了:

Dim ScalingAnchor As Dictionary(Of String, Double) = GetScalingAnchorPoints()
'Do your stuff here

现在,您可以使用以下语法调用TopAnchorX

ScalingAnchor.item("TopAnchorX")

如果您不想创建新的公共课程,这是最相似的方法