2017-07-20 48 views
-5

私は、ユーザーが入力したインチの数をフィート、ヤード、およびマイルに変換するプログラムを作成しようとしています。以下は私の作業コードですが、各変換(フィート/ヤード/マイル)をメインから呼び出される別のメソッドに分割する必要があります。どうすればこれを達成できますか?C#でメソッド/呼び出しを別のメソッドから呼び出す方法は?

class Program 
{ 
    static void Main(string[] args) 
    { 

     int feet = 12; 
     int yards = 36; 
     int miles = 63360; 


     Console.WriteLine("How many inches would you like to convert?"); 
     int inches = Convert.ToInt32(Console.ReadLine()); 

     double numOfFeet = (double)inches/feet; 
     double numOfYards = (double)inches/yards; 
     double numOfMiles = (double)inches/miles; 

     Console.WriteLine(inches + " inches is equivalent to " + string.Format("{0:N2}", numOfFeet) + " feet, or " + string.Format("{0:N2}", numOfYards) + " yards, or " + string.Format("{0:N2}", numOfMiles) + " miles."); 
     Console.ReadLine(); 


    } 
} 
+3

は、あなたがしようとしたとして苦労しているものをご提示ください。 –

+1

[この質問](https://stackoverflow.com/questions/44951451/c-sharp-how-to-pass-unknown-value-variable-user-input-to-return-method/44951611)はちょっと似ていますあなたがしようとしていること。 – CNuts

+0

HINT: '静的ダブルGetFeetFromInches(ダブルインチ) \t \t { \t \t \t INT足= 12。 \t \t \tリターン(ダブル)インチ/フィート; \t \t} ' それを試してみてください:)それは解決できると確信しています:) – FortyTwo

答えて

0

あなたはこのような何かを行うことができませんでしたか?

毎回Inchesに渡す新しいメソッドに論理を抽象化し、double型を返すことに注意してください。

static void Main(string[] args) 
    { 
     Console.WriteLine("How many inches would you like to convert?"); 
     int inches = Convert.ToInt32(Console.ReadLine()); 

     double numOfFeet = ConvertToFeet(inches); 
     double numOfYards = ConvertToYards(inches); 
     double numOfMiles = ConvertToMiles(inches); 

     Console.WriteLine(inches + " inches is equivalent to " + string.Format("{0:N2}", numOfFeet) + " feet, or " + string.Format("{0:N2}", numOfYards) + " yards, or " + string.Format("{0:N2}", numOfMiles) + " miles."); 
     Console.ReadLine(); 

    } 

    private static double ConvertToMiles(int inches) 
    { 
     int miles = 63360; 
     return inches/miles; 
    } 

    private static double ConvertToYards(int inches) 
    { 
     int yards = 36; 
     return inches/yards; 
    } 

    private static double ConvertToFeet(double inches) 
    { 
     int feet = 12; 
     return inches/feet; 
    } 
} 
0

それはの線に沿って何かする必要があります

static double ConvertInchesToFeet(double inches){ 
    //code for inches to feet 
} 

static double ConvertInchesToYards(double inches){ 
    //code for inches to Yards 
} 

static double ConvertInchesToMiles(double inches){ 
    //code for inches to Miles 
} 

そして、あなたの主は、単にこのようにそれらを呼び出します。

double numOfFeet = ConvertInchesToFeet(inches); 
double numOfYards = ConvertInchestToYards(inches); 
double numOfMiles = ConvertInchestToMiles(inches); 
0

静的メソッドを使用する必要があります。彼らは、次のようになります。

static double InchesToFeet(int inches) 
{ 
    return (double)inches/12; 
} 

static double InchesToYards(int inches) 
{ 
    return (double)inches/36; 
} 

static double InchesToMiles(int inches) 
{ 
    return (double)inches/63360; 
} 

はそれらを呼び出すためにあなたはこのようなあなたのメインでメソッド呼び出しを使用する必要があります:あなたはこれを実現することができ

double result = InchesToFeet(inches); 
0

二つの方法をコンソールアプリケーションで:

  • 計算を実行し、メソッド内からコンソールに書き込むメソッドを作成します。
  • 答えを返し、Mainメソッドでコンソールに書き込む関数を作成します。

コンソールアプリケーションを操作する場合、クラスは静的クラスであることに注意することが重要です。したがって、コンソールアプリケーション内で静的メソッド/関数を定義する場合は、静的メソッド/関数が必要になります。

したがって、オプション1:

static void CalcuateFeet(int inches) 
{ 
    Console.WriteLine("Inches as feet:" + ((double)inches)/12.0; 
} 

そしてオプション2:

static double CalcuateFeet(int inches) 
{ 
    return ((double)inches)/12.0; 
} 
関連する問題