मेरे पास एक ऐसा फ़ंक्शन है जो निर्दिष्ट कुंजी के साथ एक शब्दकोश देता है:

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
Ran_TH 21 सितंबर 2018, 07:20

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")

यदि आप एक नया सार्वजनिक वर्ग नहीं बनाना चाहते हैं तो इसे करने का यह सबसे समान तरीका है

1
Simo 21 सितंबर 2018, 12:24