Можно ли изменить строки по умолчанию, представляющие распечатку структуры?

Я пытаюсь использовать общую технику для создания структуры, имитирующей собственный тип, это ограниченное число (ограничение не показано в образце):

<HideModuleName> _
Public Module DbKeyModule

    <DebuggerDisplay("ID = {Value}")> _
    Structure DbKey
        Implements IComparable(Of DbKey)
        Implements IEquatable(Of DbKey)

        Const Null As Integer = 0

        ReadOnly Property Value() As Integer
            Get
                Return _Value
            End Get
        End Property

        Overloads Function ToString() As String
            Return If(_Value <> 0, _Value.ToString(InvariantCulture.NumberFormat), "NULL")
        End Function
        'GetHashCode(), Equals(), CompareTo() follow
        'constructors follow
        'operator definitions follow
        'type conversions definitions follow
    End Structure
End Module

Все в порядке, за исключением некоторых распечаток по умолчанию, которые меня не устраивают и я хочу их изменить. Является ли это возможным?

Если я объявлю переменную:

Dim ID As New DbKey(12)

Затем в непосредственной области:

Дело 1:

? String.Format("{0}", ID))

Результат:

Application1.DbKeyModule+DbKey

Случай 2:

? ID

Результат:

ID = 12
    _Value: 12
    Null: 0
    Value: 12

Можно ли изменить один или оба этих двух выхода по умолчанию на что-то другое?

Примечание. Такие выражения, как "Value is " & ID или ID.ToString(), работают правильно, потому что я объявил необходимые методы, операторы и приведения типов. Но приведенные выше два выражения относятся к некоторой форме объект-строка, находящейся вне контроля этих средств. Можно ли это изменить?


person miroxlav    schedule 28.01.2015    source источник


Ответы (1)


В конце концов, я предполагаю, что распечатки являются специфическим продуктом

  • String.Format() метод в случае 1
  • Debug.Print() метод в случае 2

и поэтому их нельзя изменить.

Однако не потребовалось время, чтобы проверить в справочном источнике.

person miroxlav    schedule 28.01.2015