假设我有一个返回业务对象的方法:
public static MyObject GetObject()
{
return Blah.Blah();
}
现在我需要另一个方法来做同样的事情,但以 XML 格式返回 MyObject:
public static string GetObject(bool returnXml)
{
return Blah.Blah.Xml();
}
我从这种方法开始,但很快意识到调用者可以为 returnXml 指定 false。
我唯一的选择是将我的方法重命名为类似 GetObjectAsXml 的名称吗?
更新...谢谢大家。
我原来的方法是这样的。
public static MyObject GetObject()
{
return ConvertToMyObject(GetResponseAsXML());
}
我只需要一组看起来像这样的新方法:
public static string GetObject()
{
return GetResponseAsXML();
}
从答案来看,最好的方法似乎是拥有第二组名为 GetObjectAsXML 的方法,对吧?我真的不想执行 GetObject().ToXml(),因为我想返回原始响应。
最佳答案
我不确定你为什么要在这里重载相同的方法。
一个返回对象,另一个返回该对象的 XML 表示/序列化。我会使用两种不同的方法。
更有趣的是您如何处理这些对象和 XML 序列化;消费者可能想要 2 个将任一类型作为参数的重载,但这取决于您的需要。
关于c# - 重载最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3216390/