Обновленный myPointType
Imports System
Imports System.Data
Imports System.Data.Sql
Imports System.Data.SqlTypes
Imports System.Data.SqlServer
_
_
Public Structure myPointType
Implements INullable
#Region "Private Values"
' Это значение поля символа-заполнителя
Private m_xAxis As Integer
Private m_yAxis As Integer
' Приватный член
Private m_Null As Boolean
#End Region
#Region "Constructors"
Public Sub New(ByVal xAxis As Integer, ByVal yAxis As Integer)
m_xAxis = xAxis
m_yAxis = yAxis
m_Null = False
End Sub
Private Sub New(ByVal isnull As Boolean)
m_Null = isnull
m_xAxis = 0
m_yAxis = 0
End Sub
#End Region
#Region "Public Properties"
'''
''' Обеспечивает для точки доступ по оси x
'''
'''
'''
Public Property xAxis() As Integer
Get
Return m_xAxis
End Get
Set(ByVal value As Integer)
m_xAxis = value
End Set
End Property
'''
''' Обеспечивает для точки доступ по оси y
'''
'''
'''
Public Property yAxis() As Integer
Get
Return m_yAxis
End Get
Set(ByVal value As Integer)
m_yAxis = value
End Set
End Property
'''
''' Показывает, имеет ли текущая величина значение null.
'''
'''
'''
Public ReadOnly Property IsNull() As Boolean Implements INullable.IsNull
Get
' Введите сюда свой код
Return m_Null
End Get
End Property
'''
''' Данный метод возвращает экземпляр UDT, который является null.
'''
'''
'''
Public Shared ReadOnly Property Null() As myPointType
Get
Dim h As myPointType = New myPointType
h.m_Null = True
Return h
End Get
End Property
#End Region
#Region "Public Shared Functions"
'''
''' Метод пытается преобразовать величину в новую точку и возвращает корректный экземпляр
''' При поддержке нескольких преобразований данный способ может оказаться весьма ресурсоемким.
''' В настоящем примере я ограничился реализацией только для случая формата 'ToSTring()'
'''
'''
'''
'''
Public Shared Function Parse(ByVal s As SqlString) As myPointType
If s.IsNull Then
Return Null
End If
Dim str As String = s.ToString()
' Теоретически, для того чтобы быть уверенным, что строка отформатирована "(#,#)", здесь требуется более сложная обработка ошибок
Dim intComma As Integer
intComma = str.IndexOf(",")
Dim u As myPointType = New myPointType
' Введите сюда свой код
Return u
End Function
#End Region
#Region "Public Instance Methods"
'''
''' Аннулирует используемое по умолчанию выполнение ToString, возвращая для данного значения точки строковое представление
'''
'''
'''
Public Overrides Function ToString() As String
If m_Null Then
Return ""
End If
Return "(" + m_xAxis.ToString() + "," + m_yAxis.ToString() + ")"
End Function
'В данной области также могли бы содержаться общие методы возврата значения точки .NET нестандартного Point UDT, который имеется в используемой версии базы данных
' Это метод символа-заполнителя
'Public Function Method1() As String
' ' Введите сюда свой код
' Return "Hello"
'End Function
'' Это статический метод символа-заполнителя
'Public Shared Function Method2() As SqlString
' ' Введите сюда свой код
' Return New SqlString("Hello")
'End Function
#End Region
End Structure