3

我正在为频率创建一个转换类,我希望我的团队能够在需要时添加额外的转换。

Frequency myFrequency = new Frequency(100, MHz);
double value = myFrequency.InKhz();

该类的源代码将不会包含在未来的项目中,因此我必须让该类成为部分类,或者额外的转换需要扩展。一个示例是添加到 GHz 的转换

myFrequency.InGHz()

进行此操作的最佳方法是什么?

更新:阅读 Randolpho 的回答后,我将采用扩展方法。随着时间的推移,扩展将被纳入基本代码,但我不想让其他团队成员等待更新的程序集,这让他们可以更快地进入下一个任务。

4

3 回答 3

3

除非您有原始来源,否则部分课程将不起作用。如果您拒绝开发人员访问该源,他们唯一的选择是使用扩展方法。

也就是说,您可能只想有一个过程来使用新添加来更新库;看起来它们会很少见。

于 2009-07-22T17:43:48.610 回答
1

一路扩展方法。它不会限制你,部分方法只能在程序集中使用,而扩展方法可以在任何地方声明。

于 2009-07-22T17:45:13.367 回答
0

如果您希望它无需编译即可扩展,您可能需要创建一个单独的转换类。这将允许您在运行时指定转换并将它们存储在某种形式的字典中,但不幸的是不会有与您输入的内容相同的“内置”语言感觉。

否则,扩展方法可能是您最好的选择——但只要您想添加新的转换,它们就需要重新编译 + 新库。

于 2009-07-22T17:45:55.173 回答