可以使用c#中的部分类来修改功能

时间:2013-11-04 10:27:20

标签: c# partial

我可以使用分部类修改函数,例如在一个分部类中声明它并在另一个分部类中定义它

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

1 个答案:

答案 0 :(得分: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参数(因为这会使调用者明确分配一个噩梦)。