2014-10-20 7 views
6

मैं वीबीएनईटी के लिए नया हूं और उदाहरण के लिए डेटारो के व्यवहार की प्रतिलिपि बनाने के लिए एक विधि की खोज करता हूं।वीबी.नेट ओवरलोड() ऑपरेटर

Dim table As New DataTable 
'assume the table gets initialized 
table.Rows(0)("a value") = "another value" 

अब मैं कोष्ठक के साथ अपने वर्ग के एक सदस्य कैसे पहुँच सकते हैं: VB.NET में मैं कुछ इस तरह लिख सकते हैं? मैंने सोचा कि मैं() ऑपरेटर को अधिभारित कर सकता हूं लेकिन ऐसा लगता है कि यह जवाब नहीं है।

+3

सूचकांक? [विजुअल बेसिक .NET में इंडेक्सर प्रॉपर्टी कैसे बनाएं] (http://support.microsoft.com/kb/311323) –

+2

'()' ऑपरेटर नहीं है। चीजों के संग्रह तक पहुंचने का तरीका है। आपके उदाहरण पर दूसरा सेट 'पंक्तियों (0)' के लिए कक्ष या आइटम संग्रह है – Plutonix

उत्तर

6

यह एक अधिभार ऑपरेटर नहीं है, जिसे default property के नाम से जाना जाता है।

"एक वर्ग, संरचना, या इंटरफ़ेस सामान्य प्रॉपर्टी के रूप में अपनी संपत्तियों की ज़्यादा से ज़्यादा एक है, बशर्ते कि संपत्ति कम से कम एक पैरामीटर लेता है निर्दिष्ट कर सकते हैं। कोड एक निर्दिष्ट किए बिना एक वर्ग या संरचना के लिए एक संदर्भ बनाता है सदस्य, विजुअल बेसिक डिफ़ॉल्ट संपत्ति के संदर्भ में हल करता है। " - MSDN -

दोनों DataRowCollection वर्ग और DataRow वर्ग एक सामान्य प्रॉपर्टी Item नामित किया है।

Public Class Foo 

    Default Public Property Test(index As Integer) As String 
     Get 
      Return Me.items(index) 
     End Get 
     Set(value As String) 
      Me.items(index) = value 
     End Set 
    End Property 

    Private ReadOnly items As String() = New String(2) {"a", "b", "c"} 

End Class 

:

table.Rows(0)("a value") = "another value" 

यहाँ एक सामान्य प्रॉपर्टी के साथ एक कस्टम वर्ग का एक सरल उदाहरण है:

  |  | 
table.Rows.Item(0).Item("a value") = "another value" 

यह आपको Item सदस्यों निर्दिष्ट किए बिना कोड लिखने की अनुमति देता है

Dim f As New Foo() 
Dim a As String = f(0) 

f(0) = "A" 

ऊपर दिए गए उदाहरण को देखते हुए, आप निर्दिष्ट स्थिति पर एक चरित्र प्राप्त करने के लिए स्ट्रिंग क्लास की डिफ़ॉल्ट प्रॉपर्टी का उपयोग कर सकते हैं।

f(0) = "abc" 
Dim c As Char = f(0)(1) '<- "b" | f.Test(0).Chars(1) 
संबंधित मुद्दे