我可以使用分部类修改函数,例如在一个分部类中声明它并在另一个分部类中定义它
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);
}
}
答案 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
参数(因为这会使调用者明确分配一个噩梦)。