簡體   English   中英

從類中訪問對象

[英]accessing objects from a class

我創建了一個單獨的.cs文件名aNameClass.cs並在其中存儲了以下類。 我可以在我的Main()語句中啟用它,但是當我嘗試訪問GetChoice對象時,它告訴我由於無效的prividlidges而無法訪問它。

這是我的代碼,以啟用它並訪問它。

namespace aNameCollector
{
// ...

csGetChoice gc = new csGetChoice();
choice = gc.GetChoice();   //invalid prividlidges???


    class csGetChoice
    {
        static string GetChoice()
        {
            string choice = " ";
            Console.WriteLine("++++++++++++++++++=A Name Collector+++++++++++++++");
            Console.WriteLine();
            Console.WriteLine("What would you like to do?");
            Console.WriteLine("E = Enter a Name || D = Delete a Name || C = Clear Collector || V = View Collector || Q = Quit");
            choice = Console.ReadLine();
          return choice;
        }
    }

您需要使用靜態引用並為方法指定public ,如下所示:

// static access:
choice = csGetChoice.GetChoice(); 
...
public static string GetChoice() { ...

或者使方法成為實例方法而不是靜態方法,並像這樣定義和訪問它:

// instance access:
csGetChoice gc = new csGetChoice();
choice = gc.GetChoice();  
...
public string GetChoice() { ... // static keyword removed

如果您未提供訪問修飾符,則默認值為private ,因此僅對包含它的類可見,而不對任何其他類可見。

將方法設為public並在類型上調用靜態方法而不是實例

csGetChoice.GetChoice();

類型成員static關鍵字表明您可以通過直接引用class而不是其對象來訪問它。 但是,您仍然需要正確的訪問修飾符才能訪問該成員

如果沒有在C#中 顯式聲明訪問修飾符,則private是默認值。 這允許您僅在其class訪問該成員

為了能夠從class外部訪問它,您需要明確使用其他訪問修飾符作為public

暫無
暫無

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

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