2011-07-27 54 views
3

我是C#的新手。將main()方法放在「類」中的目的是什麼? 這個「所謂」類不會創建任何對象。我不知道他們爲什麼將整個程序看作是類和方法。爲什麼main()函數稱爲方法?顯然它是在課堂上,但我總是把它稱爲一個函數。像這樣:在C#中,在這個類中封裝方法的目的是什麼?

using System; 
public class MyApp // What is the purpose of this class? 
{ 
    public static void main() // Why is this called a method & not a function when no objects use it? 
    { 
    //Statements Here 
    } 
} 
+1

從技術上講,功能是什麼,返回一個值。在程序設計中,這個意義稍微鬆了一些,其中一個函數可能會產生副作用而沒有實際產生任何價值(這可以說是濫用了這個詞)。術語'方法'在意義上是中性的,所以你可以稱之爲方法或過程(沒有返回值的方法),而不是函數。 –

回答

10

在C#中,沒有純粹的(裸)功能;所有可執行代碼都存在於類的上下文中。一個類的可執行成員(函數)被稱爲方法。這只是事物在語言中的定義方式。

這是當今面向對象編程的標準;你可能想要更多地研究它。

+0

我在Objective-C上看了一下,我還沒有遇到將main()方法放在類中的想法。我只是有點困惑這個班的重點是什麼。沒有實例將被創建爲這個類。你能否在沒有任何事例的情況下解釋這堂課的目的? – codeblooded

+2

有趣的一面是,這不是.NET的限制。 CLR允許您在裝配模塊的上下文中定義「全局方法」。我猜這主要是爲了與VB兼容。在C#中,他們選擇消除方法定義的附加範圍。您仍然可以使用'global ::'從C#中訪問此範圍。 –

+0

@ispeakcode,靜態類用於對特定命名範圍(如'Math'靜態類)中的相關方法進行概念分組。另一種方法是在命名空間範圍內使用「靜態」函數,但是當您開始使用名稱空間時,這可能會導致使用數百個實用函數污染活動範圍。 –

0

ü必須對運行 一個main()方法也ü可以有自己的void main()多個相隔類測試這個類

0

在他們區分功能,從子程序VB。在c#中,如果它的返回值不是void,那麼該方法可以被認爲是一個像vb中的函數。由於沒有單詞方法,所以名字main被認爲是一個方法,如果它在一個類的內部構造並正確構建的話。啓動方法構造的事情是{你只能在一個具有void作爲返回類型的main方法中返回void,或者只是在任何時候輸入return並且它會立即到達main方法構造的結尾......}

2

什麼是放置在main()方法的 「類」

C#是一種面向對象的語言中的目的。也就是說,每種方法都必須屬於一個類。

將不會爲此「所謂」類創建對象。

考慮這個完全有效的代碼。

Dog類具有一些功能,重量,名稱等。它還包含創建和使用Dog類幾個實例的主要方法。

主要方法只是一個特殊的方法,從應用程序的加載位置開始。

public class Dog 
{ 
    int weight; 
    int name; 

    public static void main (string[] args) 
    { 
     Dog myDog = new Dog(); 
     myDog.weight = 15; 
     myDog.name = "Fido"; 

     Console.WriteLine("MyDog Name: {0} Weight: {1}", myDog.weight, myDog.name); 

     Dog bigDog = new Dog(); 
     bigDog.weight = 100; 
     bigDog.name = "Beethoven"; 

     Console.WriteLine("BigDog Name: {0} Weight: {1}", bigDog.weight, bigDog.name); 
    } 
} 

而且爲什麼在main()函數調用的方法?

函數/方法同樣的事情...

相關問題