定义和调用函数

时间:2016-10-07 01:21:57

标签: c#

我的目标是定义功能,然后根据需要调用它们。我正在根据此处提出的类似问题对我的代码进行建模。但我实际上从未在第一部分代码中定义术语,然后我无法弄清楚如何在第二部分中调用它们。我已经用尽了书和网上的资源。

如果有人能够更清楚地向我解释如何调用其他方法,我们将不胜感激。

这是我的代码:

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();
    }
}

3 个答案:

答案 0 :(得分: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);

答案 1 :(得分:0)

一般说明

调用方法时,调用有几个组件。

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

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

MethodName是定义的方法的名称。在示例中,方法的名称是" Pow"。

StaticClassOrObject是您从中调用方法的静态类或对象引用的名称。在这个例子中,这是静态类"数学"。 (请注意,如果从定义方法的同一个类中调用该方法,则此组件是可选的。)

parameterOneparameterTwoetc是传递给方法的参数。如果声明方法具有一定数量的参数,则在调用方法时必须传递许多参数。在示例中,Math.Pow方法有两个参数,因此传递它或多或少将导致错误。

returnValue是方法在执行时返回的值。如果方法的返回类型为void,则该方法不会返回任何内容。在示例中,Math.Pow返回类型double的值,因此我声明了该类型的变量来保存返回的值。 (通过快捷方式,您可以使用关键字var将变量的类型自动设置为方法的返回类型。)

您的错误

程序中的错误是双重的。首先,您只在方法调用中传递一个参数,但每个方法都被定义为需要两个参数。其次,您传递的参数(result1result2result3)并未在任何地方声明,因此,对于您的计划而言,它们并不存在。< / p>

更正这些错误会给您以下内容:

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);

答案 2 :(得分:0)

首先要做的事情......

我明白你是C#编程和自学的新手。我建议Visual Studio学习用C#编程,这将帮助您快速找出问题。如果有任何编译时错误或语法错误,IDE将显示红色波浪形,我在上面的代码中看到了您粘贴的问题。请参阅下面的Pic 在图片中..错误显示是屁股数字期望2个参数分隔,并且您只传递1 - 您需要传递2个数字或2个声明为double且分配了值的变量。 enter image description here

在上面的屏幕中,您可以看到错误,“结果1在上下文中不存在 - 这意味着您尚未声明result1 - 您需要声明2个double类型的变量。 enter image description here

在上面的屏幕中你会看到另一个错误 - 意外的字符$ - 不知道你在哪里得到这个以及你想用$ sign写什么..

enter image description here

在上面的屏幕中看到Console.WriteLine需要你正确提供的String和param对象,那你为什么要添加$ sign ..

因为我认为你真的需要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

希望这有助于......

快乐学习

请标记答案 - 如果我能帮助回答你的问题..