本文大部分内容整理自msdn
3、分部方法
分部方法使类的某个部分的实施者能够定义方法(类似于事件)。类的另一部分的实施者可以决定是否实现该方法。如果未实现该方法,编译器将移除方法签名以及对该方法的所有调用。因此,分部类中的任何代码都可以随意地使用分部方法,即使未提供实现也是如此。如果调用了未实现的方法,将不会导致编译时错误或运行时错误。
在自定义生成的代码时,分部方法特别有用。这些方法允许保留方法名称和签名,因此生成的代码可以调用方法,而开发人员可以决定是否实现方法。与分部类非常类似,分部方法使代码生成器创建的代码和开发人员创建的代码能够协同工作,而不会产生运行时开销。
分部方法声明由两个部分组成:定义和实现。它们可以位于分部类的不同部分中,也可以位于同一部分中。
namespacePM
{
partialclassA
{
partialvoidOnSomethingHappened(strings);
}
//Thispartcanbeinaseparatefile.
partialclassA
{
//Commentoutthismethodandtheprogram
//willstillcompile.
partialvoidOnSomethingHappened(Strings)
{
Console.WriteLine("Somethinghappened:{0}",s);
}
}
}
要点:
1、分部方法声明必须以上下文关键字 partial 开头,并且方法必须返回 void。
2、分部方法可以有 ref 参数,但不能有 out 参数。
3、分部方法为隐式 private 方法,因此不能为 virtual 方法。
4、分部方法不能为 extern 方法,因为主体的存在确定了方法是在定义还是在实现。
版权与免责声明
1、本站所发布的文章仅供技术交流参考,本站不主张将其做为决策的依据,浏览者可自愿选择采信与否,本站不对因采信这些信息所产生的任何问题负责。
2、本站部分文章来源于网络,其版权为原权利人所有。由于来源之故,有的文章未能获得作者姓名,署“未知”或“佚名”。对于这些文章,有知悉作者姓名的请告知本站,以便及时署名。如果作者要求删除,我们将予以删除。除此之外本站不再承担其它责任。
3、本站部分文章来源于本站原创,本站拥有所有权利。
4、如对本站发布的信息有异议,请联系我们,经本站确认后,将在三个工作日内做出修改或删除处理。
请参阅权责声明!