當我們寫一個方法,說一個簡單的人喜歡C#初學者,寫/調用一個方法
void myMethod()
{
// code here
//
}
,我們中的Main()調用它,它本質上是這樣做的方法:
Program myProgram = new Program();
myProgram.myMethod();
很明顯,myProgram
是完全隨意的(當然,考慮到編碼慣例),但是對Program
的引用有什麼意義?
當我們寫一個方法,說一個簡單的人喜歡C#初學者,寫/調用一個方法
void myMethod()
{
// code here
//
}
,我們中的Main()調用它,它本質上是這樣做的方法:
Program myProgram = new Program();
myProgram.myMethod();
很明顯,myProgram
是完全隨意的(當然,考慮到編碼慣例),但是對Program
的引用有什麼意義?
您正在聲明您的方法myMethod
在名爲Program
的類中。由於你的方法不是static
方法(即它不是static void myMethod()
),它需要一個Program
的實例才能工作。因此,您需要創建一個新實例Program
以便調用其上的myProgram.myMethod()
。如果myMethod
是是靜態的,那麼您可以簡單地通過Program.myMethod()
來調用它,或者因爲您已經在該類中開始,所以myMethod()
(因爲當前類名稱隱含在靜態方法中)。
我回到我的代碼;我在myMethod前添加了靜態方法,這樣程序myMethod = new Program()變得不必要(不可編譯?非法?),並且可以簡單地通過編寫myMethod() – DonG 2010-10-21 15:08:35
Program
是類型,它在你的問題中定義了myMethod
。在C#中,方法由類型定義。
您可以通過定義類型的實例或通過類型本身(如果方法是靜態的)來調用方法。由於myMethod
不是靜態的,因此需要使用Program
類型的實例來調用它。
程序是一個類,它包含方法。默認情況下,它包含的唯一方法是static void Main(...)
。
如果添加非靜態方法myMethod
它不屬於類計劃,而是實例程序(稱爲對象)的。
靜態方法(如主)可以直接從類被調用:
Program program = new Program();
program.myMethod();
類被設計成組:
Program.Main(...);
非靜態方法必須從類的對象被稱爲像功能一樣。程序不是放置這些的好地方。您應該創建其他類,並在整個代碼中使用它們。
通過使用類保持代碼一起的類,並提供一種機制來重複使用來自不同地方的相同代碼。您可以根據自己的喜好,從許多不同的類創建許多不同的「程序」實例,並在每個類上調用「myMethod」方法。
例如,你可能有一個ClassRoster
和Student
類,它可以在ClassScheduler
類中使用這樣的:
ClassRoster roster = new ClassRoster();
Student studentOne = new Student();
studentOne.StudentId = "123456";
roster.EnrollStudent(studentOne);
使用這樣的:
public void myMethod()
{
// code here
}
的主要方法
:
Program myProgram = new Program();
myProgram.myMethod();
謝謝大家。 我回到我的代碼;我在myMethod前添加了static
,這樣程序myMethod = new Program()就變得不必要了(不可編譯?非法?),並且可以簡單地通過編寫myMethod()
來調用。顯然,我需要研究靜態的作用和方式它會影響方法/類!
我實際上只在我的.NET類的第3周......我們的教師雖然非常聰明,但在教師類別中留下了一些東西。這個課程的指定文本只是在我看來是如此,至少對我和我是如何學習的(編程C#,O'Reilly)這是一個非常好的社區,謝謝!
這是聲明實例方法myMethod的類型的名稱。 – Ani 2010-10-21 04:58:57
我會建議你閱讀一本好的[介紹C#書](http://stackoverflow.com/questions/46048/what-is-the-best-book-to-learn-c0)。 – 2010-10-21 05:03:41