0

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

<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

案例二:

? ID

结果:

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

可以将这两个默认输出中的一个或两个更改为其他内容吗?

注意:喜欢"Value is " & IDor的表达式ID.ToString()可以正常工作,因为我声明了必要的方法、运算符和类型转换。但是上面的两个表达式是指一些超出这些方法控制的对象到字符串的形式。可以改变吗?

4

1 回答 1

0

毕竟我猜打印输出是特定产品

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

因此它们无法更改。

不过,没有花时间在参考源中进行验证。

于 2015-01-28T22:40:27.453 回答