3
Предположим, у меня есть этот родительский класс:Можно ли назначить переменную ReadOnly в дочернем классе?
Public MustInherit Class Parent
' ReadOnly instance variables:
Protected ReadOnly str1 As String
Protected ReadOnly str2 As String
Protected ReadOnly str3 As String
' constructor:
Public Sub New()
End Sub
End Class
Я хочу, чтобы назначить эти переменные в конструктор класса ребенок, и я хочу, чтобы они были ReadOnly
, поэтому они не могут быть изменены после своего назначения, как это:
Public Class Child
Inherits Parent
' constructor:
Public Sub New()
MyBase.New()
' can't assign the ReadOnly variables here!
' compile error: 'ReadOnly' variable cannot be the target of an assignment
Me.str1 = "asdf"
Me.str2 = "qwerty"
Me.str3 = "foobar"
End Sub
End Class
Как я могу это сделать? Если это невозможно, почему бы и нет?
Aha, не думать об этом, спасибо @Reed! –
Привет @Reed - Можно ли передать переменную в качестве аргумента в 'MyBase.New' в' Child'? Я получаю сообщение об ошибке: 'Неявная ссылка на строящийся объект недействительна при вызове другого конструктора'. –
@IanCampbell Проверьте мое редактирование - это то, что вы имеете в виду? Однако вы не можете использовать переменные 'Me ....', так как объект еще не создан. Вы * можете * использовать общие переменные ... –