Некоторые из ваших проблем могут возникнуть из-за использования слова «Coord» для имени вашего класса и имени вашей структуры.Я подозреваю, что вам нужно включить Option Strict
, Option Explicit
и Option Infer
в параметрах компиляции свойств вашего проекта.
Как сказал @Mary в комментариях выше, если ваш класс Coord предназначен только дляхраните координаты x, y, вы бы лучше смотрели на структуру Point.Однако, если вам нужны какие-то другие функции в вашем классе Coord, я все равно решил бы отказаться от структуры Coord и использовать структуру точек.Подумайте об этом
Private Class CoordClass
Private coordinate As New Point
Public Property Coord() As Point
Get
Return coordinate
End Get
Set(value As Point)
coordinate = value
End Set
End Property
End Class
, и тогда вы сможете использовать его вот так
Dim aCoordinate As New Point
aCoordinate.x = 3
aCoordinate.y = 8
coordInstance.Coord = aCoordinate
или
coordInstance.Coord = New Point(4, 5)
Гораздо проще, чем альтернатива переименования вашей Coord
стойкичтобы он не путался с вашим Coord
классом и с необходимостью присваивать значения, используя что-то вроде
Dim aCoordinate As New Coord.structCoord
aCoordinate.x = 3
aCoordinate.y = 8
или
coordInstance.Coord = new coord.structCoord with {.x=4 , .y=5}
И самое главное
Структура точек встроена в .net и ее легче обслуживать через 6 месяцев или другими программистами.