Vb.net 属性可以是可选的吗?

Vb.net 属性可以是可选的吗?,vb.net,properties,Vb.net,Properties,我有一个小班: Public Class LimitOrder <JsonProperty(PropertyName:="size")> _ Public Property Size() As Double <JsonProperty(PropertyName:="price")> _ Public Property Price() As Double <JsonProperty(PropertyName:="persis

我有一个小班:

Public Class LimitOrder
    <JsonProperty(PropertyName:="size")> _
    Public Property Size() As Double

    <JsonProperty(PropertyName:="price")> _
    Public Property Price() As Double

    <JsonProperty(PropertyName:="persistenceType")> _
    Public Property PersistenceType() As PersistenceType

    <JsonProperty(PropertyName:="betTargetType")>
    Public Property BetTargetType() As BetTargetType

    <JsonProperty(PropertyName:="betTargetSize")>
    Public Property BetTargetSize() As Double

End Class
公共类限制顺序
_
公共属性大小()为双精度
_
公共物业价格()翻一番
_
公共属性PersistenceType()作为PersistenceType
公共属性BettTargetType()作为BettTargetType
公共属性BettTargetSize()为双精度
末级
我的问题是,如果为
BetTargetType
指定了一个值,则不能将Size属性传递给处理器

每次初始化该类时,都会包含
Size
属性,并给出
0.0
的值。
如果我注释掉(或省略)
Size
属性,它可以正常工作,但在某些情况下,我希望包含Size

理想情况下,我希望
Size
属性是可选的,或者有两种类型的类,一种有Size属性,另一种没有


我已尝试将
Size
属性设置为空-但该值是在序列化之前创建的。

以下操作应能正常工作:

Private _Size As Double?

<JsonProperty(PropertyName:="size")>
Public Property Size() As Double?
    Get
        If BetTargetType IsNot Nothing Then
            Return Nothing
        Else
            Return _Size
        End If
    End Get
    Set(value As Double?)
        _Size = value
    End Set
End Property
Private\u大小是否为双倍?
公共属性大小()是否为两倍?
得到
如果BettageType不是空的,那么
一无所获
其他的
返回大小
如果结束
结束
设置(值为双精度?)
_大小=值
端集
端属性
这样
Size
返回
Nothing
如果
BetTargetType
不是
Nothing