c# - 重载最佳实践

标签 c# .net asp.net oop

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

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/

相关文章:

c# - 使用 Log4Net.ErrorFormat 如何记录堆栈跟踪?

c# - 如何读取BenchmarkDotNet的结果表

javascript - 类型 System.Collections.Generic.IDictionary 不支持反序列化数组

c# - 简单更新查询不更新。没有异常(exception),没有错误。没什么

asp.net - 'ModelClientValidationRule' 类型存在于两个 dll 中

c# - ASP.NET MVC 中的单个 SQL

c# - 在 .NET 1.1 中使用数据集更新 oracle

c# - Entity Framework 中导航属性延迟加载的逻辑

c# - ContentControl 旋转装饰器渲染

c# - ASP MVC 5 - 403 自定义错误不工作