Можно ли перегрузить операторы доступа к массиву/типу в VB.net? Например, вы можете указать что-то вроде:VB.NET перегружает доступ к массиву?
Dim mydict As New Hashtable()
mydict.add("Cool guy", "Overloading is dangerous!")
mydict("Cool guy") = "Overloading is cool!"
И это работает просто отлично. Но то, что я хотел бы сделать, это быть в состоянии сказать:
mydict("Cool guy") = "3"
и затем 3 автомагическов преобразованы в Integer 3.
Я имею в виду, что я могу иметь частное mydict.coolguy члена и имею setCoolguy() и getCoolguy(), но я бы предпочитал, чтобы иметь возможность писать его прежним способом, если это вообще возможно.
Благодаря
Для уточнения - я хочу, чтобы иметь возможность «делать вещи» со значением. Так, например, у меня есть
myclass.fizzlesticks ' String type
myclass.thingone ' Numerical type, say integer
, а затем я хочу, чтобы иметь возможность написать
myclass("thingummy") = "This is crazy"
который выстреливает метод, который выглядит, как этот
Private sub insanitea(Byval somarg as Object, Byval rhs as Object)
If somearg = "thingummy" And rhs = "This is crazy" Then
thingone = 4
fizzlesticks = rhs & " and cool too!"
End If
End Sub
Это не конкретный прецедент, но я думаю, что он лучше работает, чтобы показать, что я ищу?
я принял удар на то, что вы просите, но не уверен, что название этого вопроса и то, что я прочитал coorespond. Дайте мне знать, если я ухожу отсюда. – Tommy
Это, наверное, так же точно, как и в моем примере, и если это все, что мне нужно, то ваше решение будет работать отлично. Мне просто нужно немного более сложное поведение в моем классе, то есть при назначении я хочу иметь возможность преобразовывать значения, если они еще не являются тем, чем они должны быть. Если это имеет смысл ... –