が
Public Enum ColumnIndexEnum
FirstName = 1
LastName = 2
Address = 3
End Enum
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim row = 1
WorkSheet.GetValue(ColumnIndexEnum.FirstName, row)
End Sub
Step1-変更名ここで開始しますenumの
Public Enum ColumnIndexGetter
FirstName = 1
LastName = 2
Address = 3
End Enum
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim row = 1
WorkSheet.GetValue(ColumnIndexGetter.FirstName, row)
End Sub
ステップ2(すべての名前を変更するために赤いアンダースコアを使用) - 列挙
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim row = 1
WorkSheet.GetValue(ColumnIndexGetter.FirstName, row)
End Sub
ステップ3を取り除く - ケースのための新しい変数
Private ColumnIndexGetter As Cases
とクラスを定義します。実際の状況に合わせてこれを変更する必要があります。うまくいけば、あなたはそのアイデアを得るでしょう。
Public Class Cases
Private Enum ColumnIndexCase1
FirstName = 1
LastName = 2
Address = 3
End Enum
Private Enum ColumnIndexCase2
FirstName = 2
LastName = 3
Address = 7
End Enum
Private _whCase As Integer
Public Sub New(WhichCase As Integer)
Me._whCase = WhichCase
End Sub
Public Function FirstName() As Integer
Dim rv As Integer = 0
Select Case Me._whCase
Case 1
rv = ColumnIndexCase1.FirstName
Case 2
rv = ColumnIndexCase2.FirstName
End Select
Return rv
End Function
Public Function LastName() As Integer
Dim rv As Integer = 0
Select Case Me._whCase
Case 1
rv = ColumnIndexCase1.LastName
Case 2
rv = ColumnIndexCase2.LastName
End Select
Return rv
End Function
Public Function Address() As Integer
Dim rv As Integer = 0
Select Case Me._whCase
Case 1
rv = ColumnIndexCase1.Address
Case 2
rv = ColumnIndexCase2.Address
End Select
Return rv
End Function
End Class
最後に、ColumnIndexGetterを使用する前に、あなたが
ColumnIndexGetter = New Cases(1)
'or
ColumnIndexGetter = New Cases(2)
をする必要がありますし、どこで、コードが
Private ColumnIndexGetter As Cases
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
ColumnIndexGetter = New Cases(1)
'or
ColumnIndexGetter = New Cases(2)
Dim row = 1
WorkSheet.GetValue(ColumnIndexGetter.FirstName, row)
End Sub
のようになります。ColumnIndexGetterの初期化の実際の位置は、おそらくになりますどの場合に対処しているか知っています。
これは私がやったことです。ありがとうございます!しかし、ただ一つの小さなこと。 GetColumnメソッドでは、列の名前(タイトルではなく、バックエンドで使用する名前)である文字列を取ることができました。これは、Enum.TryParseを使って時間に応じて正しい列挙型に解析しようとします。だから私の解決策はあなたのものより少し短かった。 あなたの提案は正しい軌道に乗ったので、ありがとう! –