Non è un operatore di sovraccarico, noto come default property.
"Una classe, struttura o interfaccia può designare al massimo una delle sue proprietà come la proprietà predefinita, purché struttura richiede almeno un parametro. Se il codice fa riferimento a una classe o struttura senza specificare un membro, Visual Basic risolve tale riferimento alla proprietà predefinita. " - MSDN -
Sia la classe e la classe DataRowCollection
DataRow
hanno una proprietà predefinita di nome Item
.
| |
table.Rows.Item(0).Item("a value") = "another value"
Questo consente di scrivere il codice senza specificare le Item
membri:
table.Rows(0)("a value") = "another value"
Ecco un semplice esempio di una classe personalizzata con una proprietà di default:
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
Dim f As New Foo()
Dim a As String = f(0)
f(0) = "A"
Dato l'esempio precedente, è possibile utilizzare la proprietà predefinita della classe string per ottenere un carattere nella posizione specificata.
f(0) = "abc"
Dim c As Char = f(0)(1) '<- "b" | f.Test(0).Chars(1)
fonte
2014-10-20 15:27:55
Indicizzatore? [Come creare una proprietà dell'indicizzatore in Visual Basic .NET] (http://support.microsoft.com/kb/311323) –
'()' non è un operatore. è come accedere a una raccolta di cose. il secondo set sul tuo esempio è la collezione di celle o elementi per 'Rows (0)' – Plutonix