可以更改表示结构打印输出的默认字符串吗?

时间:2015-01-28 21:03:20

标签: vb.net structure tostring object-to-string data-representation

我正在尝试使用常用技术来创建模仿本机类型的结构,它是受约束的数字(约束未在示例中显示):

<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 " & IDID.ToString()等表达式正常工作,因为我声明了必要的方法,运算符和类型转换。但是上面两个表达式指的是一些超出这些方法控制范围的对象到字符串形式。可以改变吗?

1 个答案:

答案 0 :(得分:0)

毕竟我猜打印输出是

的特定产品
    案例1中的
  • String.Format()方法
  • 案例2中的
  • Debug.Print()方法

因此无法更改。

虽然没有时间在参考来源中进行验证。