C#初学者,编写/调用方法

时间:2010-10-21 04:56:06

标签: c# .net methods

当我们编写方法时,请说一个简单的方法,如

  void myMethod()
    {
    // code here
    // 
    }

我们从Main()内部调用它,它基本上是这样做的:

Program myProgram = new Program ();
myProgram.myMethod();

显然,myProgram完全是任意的(当然,考虑到编码惯例),但是对Program的引用是什么?

5 个答案:

答案 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)这是一个非常好的社区,谢谢!