1

私は最近、c#3.0 の新しい部分メソッドを掘り下げていました。部分クラスの使用法を理解していました。1 つの定義と他の宣言を含む複数のファイルに分割できることを理解していましたが、知りたかったので、以下のような部分クラスを作成しました。 :

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.
  }
}

次に、部分メソッドの作成の使用法は何ですか。実行時にコンパイラがクラスを1つにコンパイルすることをMSDNで読みました。その場合、コンパイラは「メソッド」メソッドの実装も取得する必要があります。メインメソッドの「メソッド」メソッド、私が間違っている場合は誰でも修正できますか、メインでこの部分メソッドを呼び出すことができない理由を教えてください。

4

3 に答える 3

3

MSDNから

アクセス修飾子または属性は許可されていません。部分メソッドは暗黙的にプライベートです。

これはプライベートメソッドなので、mainから呼び出すことはできません。

于 2012-02-28T16:47:49.850 に答える
0

You can call a partial method inside the constructor where the method is defined.

For example

    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();
   }
}

That's it..now execute your code and see the result..

  • OutPut

Invoking partial method

于 2015-10-11T07:13:17.137 に答える
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 に答える