簡體   English   中英

在C#控制台應用程序中,public static void Main()和private static void Main()有什么區別?

[英]What is the difference between public static void Main() and private static void Main() in a C# console application?

有什么區別

public static void Main()

private static void Main()

在C#控制台應用程序中? 特別是因為它與Main()方法有關(我理解publicprivate之間的差異)。

要充當應用程序的起點, Main方法不需要public

如果您確定將其public ,則可以從其他類或程序集中調用它。 通常,您不需要這樣做,因此您可以將其private

將其public一個可能用例是允許自動化測試來調用它。

兩者之間的區別是publicprivate訪問修飾符的唯一區別,因為它們都是有效的。它完全取決於應用程序的使用情況。

如果您想通過任何外部程序啟動入口點(即用作API,用於測試目的),那么您可能需要將其公開以便可訪問。

上市

如果您知道應用程序沒有外部使用,那么最好將其設置為私有,以便外部應用程序無法訪問它。

私人的

在大多數情況下,它沒有任何區別。 微軟主張將Main設為私有。

這樣做的唯一真正價值(據我所知)是它將阻止Main方法被另一個應用程序的代碼庫直接調用。

它的一個很好的討論,請點擊這里

除了普通的公共和私人訪問修飾符功能,沒有。 兩者都是有效的切入點。

請參閱: 為什么允許入口點是私有的? 為什么Main方法是私有的?

當main是私有的時,main被標記為exe本身執行的入口點,因此外部的任何東西都無法訪問它

將其公開將使該方法可從外部訪問

閱讀更多說明http://social.msdn.microsoft.com/Forums/vstudio/en-US/9184c55b-4629-4fbf-ad77-2e96eadc4d62/why-is-main-in-c-not-a-public- static-?論壇= csharpgeneral

有區別,因為第一個是公共的,第二個是私有的,所以當你嘗試從課外使用第一個時,它可以正常工作,但不適用於第二個。

但是,如果您嘗試在應用程序中創建其中一個入口點,則沒有區別。 入口點方法可以是公共的也可以是私有的,沒關系。

public和private是訪問說明符。

我們用,

 public static void Main()

因為要執行該程序,您需要調用存在此Main()方法的類,因為您需要將Main()方法設為public,否則將無法在類外部訪問它。

它之所以是靜態的,是因為需要訪問它而不在類級創建該類的任何對象.ie。

私有或公共語句是它的訪問修飾符,私有訪問修飾符使外部對象無法訪問,公共訪問修飾符使外部對象可以訪問它。 示例用法:

假設我們有一個班級:

class myClass{
    public void test(){
        //do something
    }
}

我們創建該類的實例:

myClass mClass=new myClass();

要訪問它的成員函數,你會去:

mClass.test();

如果它有一個私有訪問修飾符,你會收到一個編譯錯誤,說它無法訪問。

而且出於知識的考慮,要在不創建類實例的情況下訪問成員,您還要將該成員設置為靜態,例如:

class myClass{
    public static void test(){
        //do something
    }
}

所以現在要訪問它,你只需要:

myClass.test();

(請注意,在靜態成員中訪問的任何成員也應該是靜態的)

基於訪問級別。

private--> access to own class
public --> open to alll

例如,當您想要添加可以從類或程序集外部調用的入口點時,您應該設置為public但如果它不是importatnt則使用private

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM