1

我最近在 c#3.0 中研究新的部分方法,我了解部分类的使用,它可以被分成多个文件,一个包含定义和其他声明,但我想知道,我创建了一个如下所示的部分类:

in class1.cs
partial class A
{
   partial void Method();
}
in class2.cs
partial class A
{
  partial void Method()
  {
    Console.WriteLine("Hello World");
  }
}
now in class3.cs
class MainClass
{
  static void Main()
  {
    A obj = new A();
    obj.Method(); //Here i cannot call the "Method" method.
  }
}

那么创建部分方法的用途是什么,我在 MSDN 上读到,在运行时,编译器将类编译为一个,在这种情况下编译器也应该获取“方法”方法实现,那么为什么它不允许我调用“方法”方法在 main 方法中,如果我错了,谁能纠正我,并告诉我为什么我无法在 main 中调用这个部分方法。

4

3 回答 3

3

来自MSDN

不允许使用访问修饰符或属性。部分方法是隐式私有的。

这是一个私有方法,所以你不能从 main 调用它。

于 2012-02-28T16:47:49.850 回答
0

是的,我们不能从Main(). 问题不是部分方法问题是类中没有说明符的方法是私有的,私有方法只能在类内部调用。

尝试在 Partial 类中创建一个新的公共方法:

partial class A
{
  partial void Method();
}

partial class A
{
  partial void Method()
  {
    Console.WriteLine("Hello World");
  }
  public void Study()
  {
    Console.WriteLine("I am studying");
    Method();
  }
}

class MainClass
{
  static void Main()
  {
    A obj = new A();
    obj.Study(); 
  }
}
于 2015-07-22T19:47:39.437 回答
0

您可以在定义方法的构造函数中调用部分方法。

例如

    public partial class classA
    {
      partial void mymethod();
    }
    public partial class classA
    {
      partial void mymethod()
      {
         Console.WriteLine("Invoking partial method");
      }
      public ClassA()
      {
        mymethod();
      }


    }
public class MainClass
{
   static void Main()
   {
      ClassA ca=new ClassA();
   }
}

就是这样..现在执行您的代码并查看结果..

  • 输出

调用部分方法

于 2015-10-11T07:13:17.137 回答