У меня есть переменная типа объекта (control .Tag), которую мне нужно привести к структурированному типу, и изменить член. Это надуманный, но представительный пример:
Public Structure struct_COLOURS
Dim ILikeRed as boolean
Dim ILikeGreen as boolean
End Structure
Dim AnObject as Object = (some source that is struct_COLOURS)
DirectCast(AnObject, struct_COLOURS).ILikeRed = True ' This is not valid syntax?!
Я неЯ не очень хорошо помню мой синтаксис C, но это будет примерно так:
(struct_COLOURS*)AnObject->ILikeRed = true;
Дело в том, что я могу привести объект к чему-либо и установить членов в результирующем приведении.Кажется, что DirectCast на самом деле является функцией, а не приведением в том виде, в каком я ее интерпретирую.
Как ни странно, если вы хотите получить только значение члена, вы можете использовать DirectCast:
dim YummyRed AS Boolean = DirectCast(AnObject, struct_COLOURS).ILikeRed
просто отлично!
Если я не могу привести то, что хочу, и я не могу изменить использование свойства Tag (поэтому, пожалуйста, не предлагайте, это не вариант) для хранения этих структур, какой самый быстрый способ установить элементы?