C# 为什么我不能从另一个类调用所有方法?

C# 为什么我不能从另一个类调用所有方法?,c#,.net,access-modifiers,C#,.net,Access Modifiers,我尝试从另一个类调用一个方法。我已经添加了引用并找到了类。我可以调用这个类的一些方法,但是我不能调用这个类中的所有方法 主类是public partial类,包含我要使用的方法的类是private static类。我尝试调用的方法是publicstatic。我可以调用的方法和我不能调用的方法之间没有区别。这就是我不明白的问题。有人能解释一下吗 namespace MyNamespace2 { private static class MyClass { publi

我尝试从另一个类调用一个方法。我已经添加了引用并找到了类。我可以调用这个类的一些方法,但是我不能调用这个类中的所有方法

主类是public partial类,包含我要使用的方法的类是private static类。我尝试调用的方法是publicstatic。我可以调用的方法和我不能调用的方法之间没有区别。这就是我不明白的问题。有人能解释一下吗

namespace MyNamespace2
{
    private static class MyClass
    {
        public static void MyMethod() { }
    }
}

namespace MyNamespace1
{
    class Program
    {
        static void Main(string[] args)
        {
            //can't call
            MyClass.MyMethod();
        }
    }
}

如果您试图访问的类是私有的,那么不管它的方法是否是公共的,您都不能访问该类本身

这样想吧。如果你不被允许进入纽约,那么城市里所有的房子都是开放的也没关系,因为你不能进入城市本身

然而,为了回到代码,您可以访问私有类:如果调用函数是包含您的私有类的类的一部分

如果您可以自由操作您试图访问的类的代码,那么您应该尝试类似的操作:

class A {
  private static class B {
    public static void Foo() {}
  }

  public void Bar() {
    B.Foo();
  }
}
在这段代码中,您可以从A的任何成员函数调用B.Foo,但不能从A的外部调用。

您已经编写好了

我想用的是私有静态类

您的私有类及其方法、属性和字段不可用,即使它们本身具有公共修饰符。 你一定要看这个

但是,如果您能够移动您的私人类,请尝试以下方法:

class Program
{
    private static class Test
    {
        public static void Foo() { }
    }

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

请给出一些代码cPrivate类中的Google访问说明符在其父类内部可用。您需要通过公共/内部类或更高层次结构的接口访问私有类的成员。好的,我理解。我把课程从私人改为公共,但我仍然有同样的问题。我不能从这个类中调用每个方法。主类现在是公共的,我从中调用方法的类是公共的,方法是公共的,但我不能调用它。啊,好的。我必须重新构建解决方案。现在我可以调用这个方法了。非常感谢您的帮助:@Cendo既然您已经解决了您的问题,您能接受一个答案吗?对不起,sokkyoku,我不明白您为什么认为我不接受答案?也许您不能,因为问题被搁置,但通常您可以选择一个对您的问题的回答作为接受答案,这标志着它是最适合未来观众的问题