【问题标题】:Calling public method [closed]调用公共方法[关闭]
【发布时间】:2017-02-08 04:49:10
【问题描述】:

我认为当您的方法公开时,您可以从项目中的任何类调用它...

namespace MethodTest
{
    class Program
    {
        public static void Foo()
        {
        }

        static void Main(string[] args)
        {
            Foo();
        }
    }

    class MyClass
    {
        public static void asd(string[] args)
        {
            Foo();
        }
    }
}

但是,当我尝试从其他类调用它时,出现错误

错误 CS0103 名称 'Foo' 在当前目录中不存在 上下文 MethodTest D:\Visual Studio\MethodTest\MethodTest\Program.cs 23 活动 PS:据我所知,如果错过访问修饰符,它是私有的……我说得对吗?

【问题讨论】:

标签: c#


【解决方案1】:

你不能像这样使用来自不同类的方法。

试试下面的代码:

class MyClass
{
    public static void asd(string[] args)
    {
        Program.Foo();
    }
}

通过使用Program.Foo();,您可以指定要使用的确切方法(来自不同的Program 类),以便CLR 知道要调用哪个方法。

之所以这么称呼它,是因为Foo方法声明中的static关键字。否则它会被不同地调用:

new Program().Foo();

【讨论】:

  • 我的问题的第二部分怎么样,默认访问修饰符是私有的吗?(当我没有在我的程序中指定它时,例如:static void Foo() { }
  • 之所以这样称呼它是因为static关键字。否则它会被不同地调用。答案不完整
  • @ThomasWeller 我同意你的看法。我会更新我的答案。
猜你喜欢
  • 2011-08-16
  • 1970-01-01
  • 2017-01-08
  • 1970-01-01
  • 2011-09-19
  • 1970-01-01
  • 1970-01-01
  • 2015-08-26
  • 1970-01-01
相关资源
最近更新 更多