【发布时间】:2015-02-13 19:54:56
【问题描述】:
我完全理解如何编写分部方法。 我的问题是关于我们在 C# 程序中编写部分方法时的主要目的还是附加价值。
谢谢大家。
【问题讨论】:
-
来自documentation:“部分方法使类设计者能够提供方法挂钩,类似于事件处理程序,开发人员可以决定是否实现。如果开发人员不提供实现, 编译器在编译时移除签名。"
我完全理解如何编写分部方法。 我的问题是关于我们在 C# 程序中编写部分方法时的主要目的还是附加价值。
谢谢大家。
【问题讨论】:
来自 Jon Skeet 的C# in Depth 3rd Edition:
总而言之,C# 3 中的部分方法允许生成的代码进行交互 以丰富的方式手写代码,没有任何性能 对不需要交互的情况进行处罚。这是 C# 2 部分类型特性的自然延续,它 使代码生成器之间的关系更加高效 和开发人员。
【讨论】:
这里是一些来自 msdn 文档的关于部分方法的 cmets。
部分方法使类设计人员能够提供方法挂钩,类似于事件处理程序,开发人员可以决定是否实现这些方法。如果开发人员不提供实现,编译器会在编译时删除签名。以下条件适用于部分方法:
例子:
partial class A
{
partial void OnSomethingHappened(string s);
}
// This part can be in a separate file.
partial class A
{
// Comment out this method and the program
// will still compile.
partial void OnSomethingHappened(String s)
{
Console.WriteLine("Something happened: {0}", s);
}
}
来自参考msdn
【讨论】: