说我有一个返回业务对象的方法:

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/

10-12 20:24