【发布时间】:2015-09-30 14:49:52
【问题描述】:
这个问题是关于在以下情况下正确和可接受的编码实践。
我有以下两种方法。
public TService GetDuplexClientChannel<T>(BindingType bindingType, EndpointAddress endPointAddress) where T : TService
{
.. Do work .. then ..
return InstanceOf(TService);
}
public TService GetDuplexClientChannel<T>(BindingType bindingType, string endPointAddress) where T : TService
{
// Call the above method and just return it.
return GetDuplexClientChannel<T>(bindingType, new EndpointAddress(endPointAddress);
}
在第一个示例中,我有方法 A 来完成工作,方法 B 只是 A 的重载,但调用 A 来完成工作。
我想知道这是否是可接受的模式,还是应该在第二种方法中重复代码?对此的最佳做法是什么。
我查看了此链接,但它没有回答我关于什么是正确或不正确的问题: Better way to overload methods in C#
【问题讨论】:
-
DRY 是一种编程原则,它的意思是“不要重复自己”。重用代码(就像您所做的那样)而不是重复代码并引入双倍的维护工作和难以跟踪的错误(在方法 A 中有效,但在方法 B 中无效)是一种很好的做法。
标签: c# coding-style standards overloading