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

现在,如果仅使用前半部分编译代码 - 那么showa()是一个空方法。如果showaImpl声明了实现 - 那么调用存在。如果没有实现,编译器会完全忽略对部分方法的调用- 因此它们不能有访问修饰符,或者有返回值或参数(因为这会使调用者的明确分配成为一场噩梦)。out

于 2013-11-04T10:34:23.647 回答