繁体   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