2016-10-07 24 views
2

私の目標は関数を定義し、必要に応じて関数を呼び出すことです。私はここで尋ねられた同様の質問から自分のコードをモデリングしています。しかし、実際にはコードの最初の塊にその用語を定義したことはありません。そして、第2部分でどのように呼び出すかを理解することはできません。私は本とオンラインでリソースを使い果たしました。関数の定義と呼び出し

誰かが私に他の方法を呼び出す方法を少しはっきりと説明できるなら、非常に感謝します。

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 

namespace FunctionCalls 
{ 
    class Functions 
    { 
     static public double addNumbers(double number1, double number2) 
     { 
     double result1 = number1 + number2; 
     return result1; 
     } 

     static public double subtractNumbers(double number1, double number2) 
     { 
     double result2 = number1 - number2; 
     return result2; 
     } 

     static public double avgNumbers(double number1, double number2) 
     { 
     double result3 = (number1 + number2)/2; 
     return result3; 
     } 

     public static void Main(String[] args) 
     { 
     Functions.addNumbers(result1); 
     Functions.subNumbers(result2); 
     Functions.avgNumbers(result3); 

     Console.WriteLine($"The sum of your numbers is {0}", result1); 
     Console.WriteLine($"The difference of your numbers is {0}", result2); 
     Console.WriteLine($"The average of your numbers is {0}", result3); 

     Console.ReadKey(); 
    } 
} 
+1

すべての3つの方法は2つのパラメータを必要とし、それぞれに1を渡すだけで、あなたは戻り値をキャッチしませんでした関数からのed値 – shole

+1

関数の引数(入力)と関数の出力を混同していると思います。それぞれ変数result1、result2、result3を入力として 'addNumbers'、' subNumbers'、および 'avgNumbers'を呼び出していますが、後でこれらの変数を関数の出力を含むように使用します。また、メインメソッドでこれらの変数を定義しないでください(変数を使用する前に変数を定義する必要があります)。 –

+0

私の目標(および割り当て)は、関数を設定し、ユーザーに2つの数値を入力させることでした。その後、確立された機能を呼び出してさまざまな結果を出し、その結果をユーザーに出力します。私は私の説明でそれを逃したことを謝罪します。私は何をするか分からなかった。しかし、それらのパラメータの中に良好な作業コードを確立するためのコードを取得することでした。私は、私が使用しようとしているコードのすべての機能をよりよく理解していればいいと思う。私はそれが私の問題を見つけて解決するのに役立つと思う。それは、VSでポップアップするエラーを修正するだけです。 – Alex

答えて

3

括弧は、メソッドの引数を含む(あなたのケースでは、数字は、加算、減算または平均する):

は、ここに私のコードです。メソッドが何かを返す場合は、呼び出しルーチンの変数に等号を付けてその値を代入する必要があります。

public static void Main(String[] args) 
    { 
     var result1 = Functions.addNumbers(13, 14); 
     var result2 = Functions.subNumbers(17, 18); 
     var result3 = Functions.avgNumbers(20, 21); 
0

一般的な説明

あなたがメソッドを呼び出すと、呼び出しにはいくつかのコンポーネントがあります。

var returnValue = StaticClassOrObject.MethodName(parameterOne, parameterTwo, etc); 

// For Example 
double sinValue = Math.Pow(2, 8); 

MethodNameは、定義されている方法の名前です。この例では、メソッドの名前は "Pow"です。

StaticClassOrObjectは、メソッドを呼び出す静的なクラスまたはオブジェクト参照の名前です。この例では、これは静的クラス "Math"です。 (もしメソッドが定義されている同じクラス内からメソッドを呼び出している場合、このコンポーネントはオプションであることに留意されたい。)

parameterOneparameterTwoetcがメソッドに渡されるパラメータです。メソッドが特定の数のパラメータを持つものとして宣言されている場合、そのメソッドを呼び出すときには多くのパラメータを渡す必要があります。この例では、Math.Powメソッドは2つのパラメータをとるため、それ以上またはそれ以下で渡すとエラーになります。

returnValueは、実行時にメソッドが返す値です。メソッドの戻り値の型がvoidの場合、このメソッドは何も返しません。この例では、Math.Powdoubleの型の値を返します。したがって、その型の変数に戻り値を保持することを宣言します。 (ショートカットによって、あなたは変数の型を自動的にメソッドの戻り値の型に設定され持っているキーワードvarを使用することができます。)

あなたのエラー

あなたの中のエラープログラムは2倍です。まず、メソッド呼び出しでは1つのパラメータだけを渡しますが、それぞれのメソッドは2つのパラメータを必要とするものとして定義されています。第2に、渡すパラメータ(result1result2result3)はどこにも宣言されていないので、プログラムの目的上は存在しません。

var result1 = Functions.addNumbers(1, 2); 
var result2 = Functions.addNumbers(3, 4); 
var result3 = Functions.addNumbers(5, 6); 

あなたがやっているすべてはFunctionsクラス内にあるため、コールのClassNameOrObjectの一部を安全に取り外すことができるものの:

var result1 = addNumbers(1, 2); 
var result2 = addNumbers(3, 4); 
var result3 = addNumbers(5, 6); 
をこれらのエラーはあなたに次のようなものを与える修正

これらの例では、定数値をパラメータとして渡しています。あなたは、パラメータとして変数を渡したい場合は、まずそれを宣言してインスタンス化する必要があります。

double param1 = 1; 
double param2 = 2; 
var result1 = addNumbers(param1, param2); 
0

最初の最初のもの..私はあなたがC#プログラミングと独学に新しく追加されたことを理解し何

。 Visual StudioでC#でプログラムを学習することをお勧めします。これは、問題を迅速に把握するのに役立ちます。コンパイル時エラーや構文エラーがある場合、IDEには赤色の不鮮明が表示されます。これは、上記のコードでは、質問に貼り付けられています。下の図を参照してくださいPic エラーショーはassですNumberは2つのパラメータを区切って1つしか渡しません - 2つの数値または2つの変数を渡す必要があり、doubleと宣言され、値が割り当てられています。上記の画面で enter image description here

、エラーを見ることができ、「結果1は、コンテキスト内に存在しない - あなたは結果1を宣言していないわけつまり - あなたはdouble型の2つの変数を宣言する必要が enter image description here

。予期しない文字$ - - あなたはこれを得た場所を確認し、何を$記号で書くしようとしていたではない...

enter image description here

を参照してください上記のスクリーンConsole.WriteLineを内のExPECである上記の画面では、別のエラーが表示さあなたが正しく提供した文字列とparamオブジェクト、なぜ$記号を追加したのですか?

実際にVisual Studioが必要だと思うので、あなた自身でこれらの問題の多くを修正することはできません。

ここには完全に実行中のプログラムがあります。

namespace FunctionCalls 
{ 
    class Functions 
    { 
     static public double addNumbers(double number1, double number2) 
     { 
     double result1 = number1 + number2; 
     return result1; 
     } 

     static public double subtractNumbers(double number1, double number2) 
     { 
     double result2 = number1 - number2; 
     return result2; 
     } 

     static public double avgNumbers(double number1, double number2) 
     { 
     double result3 = (number1 + number2)/2; 
     return result3; 
     } 

     static void Main(String[] args) 
     { 
      double result1 = 20.00; 
      double result2 = 10.00; 
      double sum, sub, avg; 

      sum = Functions.addNumbers(result1, result2); 
      sub = Functions.subtractNumbers(result1, result2); 
      avg = Functions.avgNumbers(result1, result2); 

      Console.WriteLine("The sum of your numbers is {0}", sum); 
      Console.WriteLine("The difference of your numbers is {0}", sub); 
      Console.WriteLine("The average of your numbers is {0}", avg); 

      Console.ReadKey(); 
     } 
    } 
} 

、ここで結果のスクリーンショットが..です enter image description here

・ホープ、このことができます。..

ハッピー学習

それが答えマークしてください - 私は助けることができた場合をあなたの質問に答える...

関連する問題