我是C#和面向对象语言的绝对初学者,因此我在网上找到了这个教程并且坚持到functions。 现在,它说: 你声明这样的函数:
public int AddNumbers(int number1, int number2)
{
int result = number1 + number2;
return result;
}
但是并没有说这个方法必须在Main()方法之外。 而且,它说这个函数是这样调用的:
int result = AddNumbers(10, 5);
Console.WriteLine(result);
我的猜测是你必须把这段代码放在Main()方法中,但它并没有说你必须先创建对象所以正确的代码是:
Program add = new Program();
int result = add.AddNumbers(10, 5);
Console.WriteLine(result);
'Program'是父类的名称。
所以我现在很困惑。我不熟悉C#版本,但作为我的结论,tutorial适用于C#2.0。
由于本教程是#2 for google“C#tutorial”,我对我和未来学习者的问题是: 是这个错误还是你在C#2.0中这样做的方式,还是只是以这样的方式编写,所以它对于绝对的初学者来说还不够清楚?
答案 0 :(得分:1)
对于初学者来说,他们的例子不是很清楚,但看起来他们假设你是在同一个班级内调用这个函数。
所以这样的事情会起作用:
public class Foo
{
public void Bar()
{
int result = Add(1, 3);
}
public int Add(int first, int second)
{
return first + second;
}
}
然后可以在Main
方法中使用,例如:
public static Main()
{
var foo = new Foo();
foo.Bar();
}
正如@Oded在他的回答中指出的那样,作者可能理所当然地认为你无法嵌套函数。
答案 1 :(得分:1)
方法与实例有关,你应该通过从类中创建一个实例来调用它们,然后调用方法“和你一样”
但是,static
方法是类方法,因此您可以在不创建实例的情况下调用它们
public static int AddNumbers(int number1, int number2)
{
int result = number1 + number2;
return result;
}
并按类名Program.AddNumbers(1,2)
但是,如果方法是静态的,您可以在同一个类中的静态方法中调用它而不指定类的名称
AddNumber(1,2)
因为AddNumber
是在同一个类Program
答案 2 :(得分:1)
您使用的教程具有误导性。在c#中没有独立功能。所有可执行代码都放在属于类的方法中。
这就是为什么最好避免使用“函数”这个术语并使用常用的方法 - 类(方法)。
方法可以是静态的 - 那些在类上调用,不需要类实例或实例方法 - 那些需要现有实例,必须先创建
答案 3 :(得分:0)
本教程可能理所当然地认为方法不能嵌套。
方法不能包含方法 - 方法应该在类或结构中。
你做了什么 - 就教程而言,你所获得的解决方案是正确的。