私は、線形シーケンスの最初の5つの数値を計算する簡単なプログラムを作成しました。このプログラムは元々、Main()内のsubを使って計算を実行していました。しかし、コーディングの相対的初心者として、私はオブジェクト指向プログラミングの理解を深めようとしています。そのため、課題として、プログラムを書き直すことにしました。あなたが下のコードから分かるように、私はちょっとした謎を打ちました。あなたの中には私を助けてくれる人がいるかもしれません。Public Function vs Public Sub
パブリックサブを使用することで、Main()でクラスの新しいインスタンスを作成し、GetSequence ...を呼び出して必要なタスクを実行できます。しかし、私はクラス内でConsole.Write行を使用する考え方が嫌いです。私が間違っていると私を訂正しますが、動的な機能を削除するので、クラスを作成するという本来の目的を否定しませんか?
代わりに、私はパブリック関数内で同じ計算を実行しようとしましたが、残念ながら戻り値はforループ内で認識されません。私はこれを回避する手段があると確信しています...私が見逃してしまったことは明らかに明白ですが、私はそれを見ることができません。
いつものように、これについての助けを借りてください。この小さな例
Public Class Sequence
Public Property a As Integer
Public Property b As Integer
'Using Public Sub does the job, but it means using a
'Console.Write within the Sequence class, which I'm
'not too happy about.
Public Sub GetSequence()
For n = 1 To 5
Console.Write("{0}, ", a * n + b)
Next
End Sub
'I'd prefer to use a Public Function, but how do I
'return the value of the function through each iteration
'of the 'for' loop?
Public Function GetSequence(ByVal a As Integer, ByVal b As Integer)
For n = 0 To 5
Return a * n + b
Next
End Function
Public Sub New(ByVal a As Integer, ByVal b As Integer)
Me.a = a
Me.b = b
End Sub
End Class
感謝。前のコメントで述べたように、初心者として私には問題解決のための新しい概念が非常に重要です。あなたが言及した「Option Strict」手続きを辿ったわけではありませんが、それは学習についてです。私はそれを見て、再び感謝しますライアン、最も感謝します。 – Mike