私はそれが新しいコンストラクタのかなりの数のパラメータを含む基本クラスを持っています。 Superベースクラスを継承する7つのサブクラスがあります。私の質問/問題は、すべてのサブクラスは、基本クラスのNewコンストラクタのほとんどのパラメータに同じ値を使用し、これらのサブクラスは順番に呼び出すことができます。私は、スーパークラスの共通の値を設定し、それぞれのサブクラスのためにそれらを使用したいと思いますが、これを行う良い方法を思いつくことはできません。これを行う方法を理解できれば、各サブクラスのMyBase.New呼び出しでこれらのパラメータをすべて渡す必要はありません。私は私の新しいとして、私は、各サブクラスで「MyBase.New」への冗長呼び出しを取り除くしたいVB.Net OOPの質問 - スーパークラス、MyBase.netとコンストラクタのパラメータ
Public Class BaseRequest
Public Sub New(ByVal param1 As String, ByVal param2 As String, ByVal param3 As String, ByVal param4 As String, ByVal param5 As String, ByVal param6 As String, ByVal param7 As String, ByVal param8 As String, ByVal param9 As String, ByVal param10 As String)
'Private Level Variables Assigned Here'
End Sub
End Class
Public Class SubClass1
Inherits BaseRequest
Public Sub New(ByVal param1 As String, ByVal param2 As String, ByVal param3 As String, ByVal param4 As String, ByVal param5 As String, ByVal param6 As String, ByVal param7 As String, ByVal param8 As String, ByVal param9 As String, ByVal param10 As String)
MyBase.New(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10)
End Sub
End Class
Public Class SubClass2
Inherits BaseRequest
Public Sub New(ByVal param1 As String, ByVal param2 As String, ByVal param3 As String, ByVal param4 As String, ByVal param5 As String, ByVal param6 As String, ByVal param7 As String, ByVal param8 As String, ByVal param9 As String, ByVal param10 As String)
MyBase.New(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10)
End Sub
End Class
Public Class SubClass3
Inherits BaseRequest
Public Sub New(ByVal param1 As String, ByVal param2 As String, ByVal param3 As String, ByVal param4 As String, ByVal param5 As String, ByVal param6 As String, ByVal param7 As String, ByVal param8 As String, ByVal param9 As String, ByVal param10 As String)
MyBase.New(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10)
End Sub
End Class
Private Sub CallClasses
If CallClass1 Then
Dim sClass1 As New SubClass1(Param1Value, Param2Value, Param3Value, Param4Value, Param5Value, Param6Value, Param7Value, Param8Value, Param9Value, Param10Value)
End If
If CallClass2 Then
Dim sClass2 As New SubClass2(Param1Value, Param2Value, Param3Value, Param4Value, Param5Value, Param6Value, Param7Value, Param8Value, Param9Value, Param10Value)
End If
If CallClass3 Then
Dim sClass3 As New SubClass3(Param1Value, Param2Value, Param3Value, Param4Value, Param5Value, Param6Value, Param7Value, Param8Value, Param9Value, Param10Value)
End If
End Sub
....いくつかのコードで説明しようとパラメータを移入しましたよSubClassesへの呼び出し。言い換えれば、このようなことをしてください....
Dim MySuperClass as New BaseRequest(Param1Value, Param2Value, Param3Value, Param4Value, Param5Value, Param6Value, Param7Value, Param8Value, Param9Value, Param10Value)
If CallClass1 Then
Dim sClass1 As SubClass1
sClass1 = MySuperClass 'This Downcasting doesn't work, which is my problem.
End If
If CallClass2 Then
Dim sClass2 As SubClass2
sClass2 = MySuperClass 'This Downcasting doesn't work, which is my problem.
End If
If CallClass3 Then
Dim sClass3 As SubClass3
sClass3 = MySuperClass 'This Downcasting doesn't work, which is my problem.
End If
わかりました。これを行う最善の方法は何ですか?
コードの書式設定では、VBコメント文字はうまく処理されません。ちょうど別のもので終わり、それは文字列として扱われます。または、//を使用し、 ' –
ありがとうございました。私はそれを知らなかった。 –
'' //まだコンパイルされますが、フォーマッタは文字列リテラルではなくコメントとして扱われ、コメントに追加のアポストロフィー文字が含まれていても機能します –