说我有一个返回业务对象的方法:
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/