Правильно ли вы делаете это или нет, зависит от того, что вы хотите сделать.
Что вы делаете, это следующее:
Вы объявляете личное поле String
с именем sqlconnection
и инициализируете его, чтобы оно содержало значение из файла конфигурации:
Private sqlconnection As String = ConfigurationSettings.AppSettings("ConnectionString")
... тогда вы настроили свойство для выставления поля:
Private Property connectionstring() As String
Get
Return sqlconnection
End Get
Set(ByVal value As String)
End Set
End Property
Здесь следует отметить, что вы ничего не делаете в Set
аксессоре . Если свойство должно быть только для чтения; удалите метод доступа Set
и пометьте свойство как ReadOnly
. Кроме того, свойство равно Private
, что дает ему ту же область действия, что и поле. Возможно, это сделано намеренно, но если вы хотите получить (или установить) значение свойства вне класса, оно не должно быть Private
.
Наконец, вы определяете конструктор, принимая параметр String
, значение которого присваивается закрытому полю:
Public Sub New(ByVal sConnectionString As String)
sqlconnection = sConnectionString
End Sub
Это выглядит вполне нормально, хотя инициализировать поле немного необязательно, когда вы заменяете значение в конструкторе. Поскольку класс не определяет конструктор без параметров, его невозможно создать без замены значения sqlconnection
.