当我们编写方法时,请说一个简单的方法,如
void myMethod()
{
// code here
//
}
我们从Main()内部调用它,它基本上是这样做的:
Program myProgram = new Program ();
myProgram.myMethod();
显然,myProgram
完全是任意的(当然,考虑到编码惯例),但是对Program
的引用是什么?
答案 0 :(得分:2)
您在名为myMethod
的类中声明了方法Program
。由于您的方法不是static
方法(即它不是static void myMethod()
),因此需要Program
的实例才能工作。因此,您需要创建Program
的新实例才能在其上调用myProgram.myMethod()
。如果myMethod
是静态的,您可以简单地通过Program.myMethod()
来调用它,或者因为您已经在该类中开始使用myMethod()
(因为静态方法隐含了当前的类名。)
答案 1 :(得分:1)
程序是一个包含方法的类。默认情况下,它包含的唯一方法是static void Main(...)
。
如果您添加非静态方法myMethod
,则它不属于类程序,而是属于程序的实例(称为对象)
可以直接从类中调用静态方法(如Main):
Program.Main(...);
必须从类的对象中调用非静态方法:
Program program = new Program();
program.myMethod();
类被设计为像功能一样组合在一起。程序不是放置这些的好地方。您应该创建其他类,并在整个代码中使用它们。
通过使用类,您可以将代码保存在一起,并提供一种机制,可以从不同的位置重复使用相同的代码。您可以从许多不同的类中创建任意数量的“程序”实例,并在每个类上调用“myMethod”方法。
例如,您可能有一个ClassRoster
和一个Student
类,可以在ClassScheduler
类中使用这样的类:
ClassRoster roster = new ClassRoster();
Student studentOne = new Student();
studentOne.StudentId = "123456";
roster.EnrollStudent(studentOne);
答案 2 :(得分:0)
Program
是您的问题中定义myMethod
的类型。在C#中,方法由类型定义。
您可以通过定义类型的实例调用方法,也可以通过类型本身调用方法(如果方法是静态的)。由于myMethod
不是静态的,因此您需要一个Program
类型的实例来调用它。
答案 3 :(得分:0)
使用它:
public void myMethod()
{
// code here
}
在main方法中:
Program myProgram = new Program();
myProgram.myMethod();
答案 4 :(得分:0)
谢谢大家。
我回到了我的代码;我在myMethod前添加了static
,并且这样做了程序myMethod = new Program()变得不必要(不可编译?非法?),只需编写myMethod()
就可以调用它。显然我需要研究静态做什么以及它如何影响方法/类!
我实际上只是在我的.NET课程的第3周......我们的教师虽然非常聪明,但在教师类别中仍有一些不足之处。在我看来,课程的指定文本只是马马虎虎,至少对我而言以及如何学习(编程C#,O'Reilly)这是一个非常好的社区,谢谢!