ReadOnly属性

时间:2014-05-13 15:10:31

标签: vb.net

我的课程设置如下:

private _eventId As String = ""
private _eventDate As Date = Nothing

Public ReadOnly Property eventId As String
    Get
        Return _eventId
    End Get
End Property 

所以另一个是相同的方式,但区别在于eventId有效,eventDate没有。我把它们放在一个我想要eventDate readonly的对象和其他对象中。

错误是“ Property eventDate是ReadOnly

然后该对象是主要代码的一部分如下

  Dim obj As New idObject(dr("EventID"))
  obj.eventDate = (dr("EventDate"))

所以我不明白为什么它不起作用我错过了什么。如果你想我会发布所有的代码,但我想如果我们可以修复这个我可以修复其余的我只是出于现在的选项

1 个答案:

答案 0 :(得分:3)

我不确定我是否真的明白你想要实现的目标。但是如果你想从类外部设置属性,你就不能使它成为ReadOnly,或者你需要至少提供一个允许初始化它的构造函数:

Public Sub New(eventID As Int32, eventDate As Date)
    Me._EventId = eventId
    Me._eventDate  = eventDate
End Sub

现在您可以通过构造函数初始化对象:

Dim eventID As Int32 = dr.Field(Of Int32)("EventID")
Dim eventDate As Date = dr.Field(Of Date)("EventDate")
Dim obj As New idObject(eventID, eventDate)

通过这种方式,您有一个必须完全初始化但后来无法轻易更改的对象。