[英]Can default strings representing structure printout be changed?
我正在嘗試使用通用技術來創建模仿本機類型的結構,它是受約束的數字(約束未在示例中顯示):
<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)
然后在即時窗格中:
? String.Format("{0}", ID))
結果:
Application1.DbKeyModule+DbKey
? ID
結果:
ID = 12
_Value: 12
Null: 0
Value: 12
可以將這兩個默認輸出之一或全部更改為其他內容嗎?
注意:因為我聲明了必要的方法,運算符和類型轉換,所以"Value is " & ID
或ID.ToString()
類的表達式可以正常工作。 但是以上兩個表達式是指超出這些方法控制范圍的某些對象到字符串的形式。 可以更改嗎?
畢竟我猜打印的是
String.Format()
方法 Debug.Print()
方法 因此,它們無法更改。
沒花時間在參考源中進行驗證。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.