0

複数のサブを使用して複数の通貨のコンバーターを作成するのに問題があります。番号は友達であるため、jap変換では使用できないというエラーが表示され続けます。誰か助けてもらえますか?前もって感謝します

Option Explicit On
'Option Strict On

Imports System

Module Yahtzed

    Sub CANtoUSD()
        Dim Number , USDConversion as Decimal
        Number = Console.Readline
        USDConversion =( Number * 1.0141)
        Console.Writeline(USDConversion)
    End Sub

    Sub CANtoJAP()
        Dim Number, JAPConversion as Decimal
        Number = Console.Readline
        JAPConversion =( Number * 79.9392)
        Console.Writeline(JAPConversion)
    End Sub

    Sub Main()
        Console.Writeline("Enter the CAN amount: ")
        CANtoUSD()
        CANtoJAP()

    End Sub

End Module
4

1 に答える 1

1

直接的な答えではありませんが、コメントで機能するよりも多くのスペースが必要です。

コードに根本的な設計エラーがあります。あなたは本当にそれをこのようにもっと構造化したいと思っています:

Function CANtoUSD(Number As Decimal) As Decimal
    Dim USDConversion as Decimal = 1.0141
    Return USDConversion * Number
End Function 

Function CANtoJAP(Number As Decimal) As Decimal
    Dim JAPConversion as Decimal = 79.9392
    Return JAPConversion * Number
End Function 

Sub Main()
    Console.Writeline("Enter the CAN amount: ")
    Dim input As Decimal = Console.ReadLine()

    Console.WriteLine(CANtoUSD(input))
    Console.WriteLine(CANtoJAP(input))
End Sub

あなたはあなたの方法の責任を混ぜたくありません。入出力は、データを操作するコードから厳密に分離する必要があります。他に何もないとしても、これにより、特定の変換方法が想定どおりに機能し、バグの原因にはなり得ないことをテストするのが簡単になります。

後で、ソースタイプと宛先タイプの両方のキー値を受け入れる単一のメソッドを使用する方法と、共通通貨への変換係数を知ることによって任意の通貨を他の通貨に変換するためのテーブルルックアップを実行する方法を学習します。

于 2012-10-17T01:21:33.577 に答える