Как создать новый тип System.String с другим именем?

Я пытаюсь описать свою проблему шаг за шагом, потому что не знаю, как выразить ее в правильных терминах программирования.

Когда я использую тип System.String , я делаю следующее:

  1. Объявите тип: Dim Str1 as String
  2. Назначьте его значение: Str1 = "Это строка"

Я хочу создать новый тип, который похож на Тип System.String , но с другим именем. Например, я хочу создать тип UrlString для такой строки:

  1. Объявить тип: Dim Str2 как UrlString
  2. Назначить его значение: Str2 = "http: //www.example.com"

Мой вопрос: : Как мне создать тип UrlString ?

Причина : Я хочу создать тип UrlString, чтобы помочь мне, чтобы определить ценность содержания. Например, тип UrlString означает, что строка находится в формате url, PhoneString означает, что строка находится в формате телефона, тип CreditCardString означает, что строка находится в формате кредитной карты и т. Д.

ОБНОВЛЕНИЕ:

Спасибо, Marc Gravell и GSerg. Вот решение:

Class UrlString
    Private ReadOnly value As String

    Public Sub New(ByVal value As String)
        Me.value = value
    End Sub

    Public Shared Widening Operator CType(ByVal value As String) As UrlString
        Return New UrlString(value)
    End Operator

    Public Shared Widening Operator CType(ByVal u As UrlString) As String
        Return u.value
    End Operator

    Public Overrides Function GetHashCode() As Integer
        Return If(value Is Nothing, 0, value.GetHashCode())
    End Function

    Public Overrides Function Equals(ByVal obj As Object) As Boolean
        Return String.Equals(value, DirectCast(obj, String))
    End Function

    Public Overrides Function ToString() As String
        Return value
    End Function
End Class
11
задан Pan Pizza 23 June 2011 в 09:06
поделиться