電卓を作成しようとしたのだが、共通化という壁が越えられない。
Public Class Form1
Private Sub Label1_Click(sender As Object, e As EventArgs) Handles lblAnser.Click
End Sub
Dim eng_num(10) As String
' [ Zero, One, Two, Three, Four, Five, Six, Seven, Eight, Nine }
Dim Zero As String = eng_num(0)
Dim One As String = eng_num(1)
Dim Two As String = eng_num(2)
Dim Three As String = eng_num(3)
Dim Four As String = eng_num(4)
Dim Five As String = eng_num(5)
Dim Six As String = eng_num(6)
Dim Seven As String = eng_num(7)
Dim Eigth As String = eng_num(8)
Dim Nine As String = eng_num(9)
Private Sub ButtonClick(sender As Object, e As EventArgs) Handles "btn" + "eng_num(0)" + ".Click"
#ここが挑戦してる所
End Sub
Private Sub btnOne_Click(sender As Object, e As EventArgs) Handles btnOne.Click
#ここが理想
End Sub
End Class
ん~VB勉強して間もないですが、rubyとは違って共通化が難しく感じる。。
Private Sub btnOne_Click(sender As Object, e As EventArgs) Handles btnOne.Click
lblAnser.Text = lblAnser.Text & "1"
End Sub
Private Sub btnTwo_Click(sender As Object, e As EventArgs) Handles btnTwo.Click
lblAnser.Text = lblAnser.Text & "2"
End Sub
Private Sub btnThree_Click(sender As Object, e As EventArgs) Handles btnThree.Click
lblAnser.Text = lblAnser.Text & "3"
End Sub
Private Sub btnFour_Click(sender As Object, e As EventArgs) Handles btnFour.Click
lblAnser.Text = lblAnser.Text & "4"
End Sub
Private Sub btnFive_Click(sender As Object, e As EventArgs) Handles btnFive.Click
lblAnser.Text = lblAnser.Text & "5"
End Sub
Private Sub btnSix_Click(sender As Object, e As EventArgs) Handles btnSix.Click
lblAnser.Text = lblAnser.Text & "6"
End Sub
Private Sub btnSeven_Click(sender As Object, e As EventArgs) Handles btnSeven.Click
lblAnser.Text = lblAnser.Text & "7"
End Sub
Private Sub btnEight_Click(sender As Object, e As EventArgs) Handles btnEight.Click
lblAnser.Text = lblAnser.Text & "8"
End Sub
Private Sub btnNine_Click(sender As Object, e As EventArgs) Handles btnNine.Click
lblAnser.Text = lblAnser.Text & "9"
End Sub
これを共通化したいと思い始めたが、まだ自分には早かったか。
ちなみにボタンのNameがbtnZero,btnOne、btnTwo,,,btnNineでそれぞれ定義しており
Textにはそれぞれ0~10までが入っています。
lblAnser.Text = lblAnser.Text & bntOne.Text
でメソッドの中身は軽く別の方法で取り出せてはいるが、、、問題の英語の部分をArrayでもってくるか、適当な変数で定義しておいて条件分岐でやるのか、もしくはFunction、Moduleを利用すべきか。
ふむ、、、わからぬ。
今後の課題として、
変数の使い方が未だに理解できていないため、それを理解
sub、Private Subなどクラス名?の意味の理解
Dim使用時の宣言場所の判断
などなどやることが多い。
アドバイス等してもらえると助かります!
以上疑問点でした。。