我尝试从另一个类调用一个方法。我添加了引用并找到了类。我可以调用这个类的一些方法但是我不能调用这个类中的所有方法。
主要类是public partial class
,包含我想要使用的方法的类是private static class
。我尝试调用的方法是public static
。我可以调用的方法和我不能调用的方法没有区别。这是我不明白的问题。请有人解释一下吗?
namespace MyNamespace2
{
private static class MyClass
{
public static void MyMethod() { }
}
}
namespace MyNamespace1
{
class Program
{
static void Main(string[] args)
{
//can't call
MyClass.MyMethod();
}
}
}
答案 0 :(得分:6)
如果您尝试访问的课程是私密的,那么如果其方法是公开的,那么您无法访问该课程。
以这种方式考虑。如果您不被允许进入纽约,那么所有房屋都在城市内开放并不重要,因为您无法进入纽约市
要返回代码,但是有一种情况可以访问私有类:如果调用函数是包含私有类的类的一部分。
如果您可以自由操作您尝试访问的课程的代码,那么您应该尝试类似的内容:
class A {
private static class B {
public static void Foo() {}
}
public void Bar() {
B.Foo();
}
}
在此代码中,您可以从B.Foo()
的任何成员函数调用A
,但不能从A
之外调用。{/ p>
答案 1 :(得分:2)
你已经写过了
我想使用的是私有静态类
您的私有类及其方法,属性和字段不可用,即使它们本身也有公共修饰符。 你必须阅读这个article
但是如果你能够移动你的私人课程,试试这个:
class Program
{
private static class Test
{
public static void Foo() { }
}
static void Main(string[] args)
{
Test.Foo();
}
}