我的目标是定义功能,然后根据需要调用它们。我正在根据此处提出的类似问题对我的代码进行建模。但我实际上从未在第一部分代码中定义术语,然后我无法弄清楚如何在第二部分中调用它们。我已经用尽了书和网上的资源。
如果有人能够更清楚地向我解释如何调用其他方法,我们将不胜感激。
这是我的代码:
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();
}
}
答案 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
是您从中调用方法的静态类或对象引用的名称。在这个例子中,这是静态类"数学"。 (请注意,如果从定义方法的同一个类中调用该方法,则此组件是可选的。)
parameterOne
,parameterTwo
,etc
是传递给方法的参数。如果声明方法具有一定数量的参数,则在调用方法时必须传递许多参数。在示例中,Math.Pow
方法有两个参数,因此传递它或多或少将导致错误。
returnValue
是方法在执行时返回的值。如果方法的返回类型为void
,则该方法不会返回任何内容。在示例中,Math.Pow
返回类型double
的值,因此我声明了该类型的变量来保存返回的值。 (通过快捷方式,您可以使用关键字var
将变量的类型自动设置为方法的返回类型。)
您的错误
程序中的错误是双重的。首先,您只在方法调用中传递一个参数,但每个方法都被定义为需要两个参数。其次,您传递的参数(result1
,result2
,result3
)并未在任何地方声明,因此,对于您的计划而言,它们并不存在。< / 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将显示红色波浪形,我在上面的代码中看到了您粘贴的问题。请参阅下面的 在图片中..错误显示是屁股数字期望2个参数分隔,并且您只传递1 - 您需要传递2个数字或2个声明为double且分配了值的变量。
在上面的屏幕中,您可以看到错误,“结果1在上下文中不存在 - 这意味着您尚未声明result1 - 您需要声明2个double类型的变量。
在上面的屏幕中你会看到另一个错误 - 意外的字符$ - 不知道你在哪里得到这个以及你想用$ sign写什么..
在上面的屏幕中看到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();
}
}
}
希望这有助于......
快乐学习
请标记答案 - 如果我能帮助回答你的问题..