1

ある部分クラスで宣言し、別の部分クラスで定義するなど、部分クラスを使用して関数を変更できますか?

public partial class PartialClass    
{        
    public void showa()
    {

    }
}
public partial class PartialClass
{
    string b = "b";
    public void showa()
    {
        Console.Write(b);
    }
}

または別の部分クラスで関数の機能を拡張する

public partial class PartialClass
{
    int a = 10; 
    public void showa()
    {
        Console.WriteLine(a);
    }
}

public partial class PartialClass
{
    string b = "b";
    public void showa()
    {
        Console.WriteLine(a+b);
    }
}
4

1 に答える 1

7

はい。ただし、部分メソッドも使用する必要があります。

public partial class PartialClass    
{        
    public void showa()
    {
        showaImpl();
    }
    partial void showaImpl(); 
}
public partial class PartialClass
{
    string b = "b";
    partial void showaImpl()
    {
        Console.Write(b);
    }
}

ここで、コードが前半のみでコンパイルされた場合、 - thenshowa()空のメソッドです。実装が宣言されている場合showaImpl、呼び出しは存在します。実装がない場合、部分メソッドの呼び出しはコンパイラによって完全に無視されます。このため、アクセス修飾子、戻り値、またはoutパラメーターを持つことはできません (呼び出し元での明確な割り当てが悪夢になるため)。

于 2013-11-04T10:34:23.647 に答える