C# 部分类 partial关键字

partial 关键字的用法: 把 partial 放在  class 、 struct 或 interface 关键字的前面。

partial class SampleClass
{
    public void MethodOne(){}
}

partial class SampleClass
{
    public void MethodTwo(){}
}

 partial 关键字有什么作用呢?

如上代码示例,如果添加了 partial 关键字, 编译后等价于:

partial class SampleClass
{
    public void MethodOne(){}
    public void MethodTwo(){}
}

看到这里,它的作用,就明白了吧!我们再看一个复杂一点的例子:

[CustomAttribute]
partial class SampleClass : SampleBaseClass, ISampleClass
{
    public void MethodOne(){}
}

[AnotherAttribute]
partial class SampleClass : IOtherSampleClass
{
    public void MethodTwo(){}
}

// 编译后,等价于

[CustomAttribute]
[AnotherAttribute]
partial class SampleClass : SampleBaseClass, ISampleClass, IOtherSampleClass
{
     public void MethodOne(){}
     public void MethodTwo(){}
}

部分类可以包含部分方法。 如果生成的代码调用了不存在的方法,这就是非常有用的。扩展部分类的程序员可以决定创建部分方法的自定义实现代码, 或者什么也不做。 下面的代码片段包含一个部分类, 其方法 MethodOne 调用 APartialMethod 方法。 APartialMethod 方法用 partial 关键字声明。 因此不需要任何实现代码。 如果没有实现代码,编辑器将删除这个方法调用:

partial class SampleClass
{
    public void MethodOne()
    {
        APartialMethod();
    }

    public partial void APartialMethod();
}

部分方法的实现可以放在部分类的任何其他地方, 如果下面的代码片段所示。 有了这个方法, 编译器就在 MethodOne 内创建代码, 调用这里声明的 APartialMethod:

partial class SampleClass : IOtherSampleClass
{
    public void APartialMethod()
    {
        
    }
}

部分方法必须是 void 类型, 否则编译器在没有实现代码的情况下无法删除调用。

注意: 尽管 partial 关键字很容易创建跨多个文件的巨大的类, 且不同的开发人员处理同一个类的不同文件, 但该关键字并不用于这个目的。 在这种情况下,最好把大类拆分成几个小类, 一个类只用于一个目的。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值