Обновленный 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