我创建了一个单独的.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;
}
}
答案 0 :(得分:4)
您需要使用静态引用并为方法指定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
如果您未提供access modifier,则默认值为private
,因此仅对包含它的类可见,而不对任何其他类可见。
答案 1 :(得分:1)
使方法公开并调用静态方法on type on not on the instance
csGetChoice.GetChoice();
答案 2 :(得分:1)
类型成员的static
关键字表示您可以通过直接引用class
而非对象来访问它。但是,您仍然需要正确的访问修饰符才能访问成员。
private
是您明确在 C#中声明访问修饰符时的默认值。这样,您就可以只在其class
内访问成员。
为了能够从class
以外的地方访问它,您需要明确使用其他访问修饰符作为public
。