【问题标题】:Alternative patterns for different return types with same method call具有相同方法调用的不同返回类型的替代模式
【发布时间】:2014-06-17 19:19:29
【问题描述】:

我希望希望能够在我的 C# 程序中实现以下三种方法:

public static WebResponse MakeAPICall(string url, string logonToken = null)
public static string MakeAPICall(string url, string logonToken = null)
public static XmlDocument MakeAPICall(string url, string logonToken = null)

显然,我不能这样做,因为调用都是模棱两可的。这里的想法是我希望能够将 WebResponse 函数包装在 string 函数中,然后将其包装在 XmlDocument 函数中,这样我只需要以一种方法管理 Web 请求,但是调用以我需要的任何形式获取特定用途的结果。

有什么巧妙的方法可以做到这一点,还是我只是坚持制作三个唯一命名的方法?也许是过载?

【问题讨论】:

  • 为什么不给他们不同的名字呢?顺便说一下,它们有不同的语义,WebResponse 是一个带有关联 Stream 的“实时”对象,请求仍然可以运行。 string\xmlDocument 代表一个完整的响应
  • 唯一命名它们的缺点是什么?
  • 没有真正的缺点。只是寻找创意。 :)

标签: c# .net web-services .net-4.0


【解决方案1】:

不,不能在 C# 中覆盖返回类型的方法。

我也希望有时编译器支持这一点以及仅覆盖属性。然后在 ASP.NET MCV 中,可以使用同名的方法来负责 GET 和 POST 请求。或者在 Web Api 中重写一个基于 HTML、XML、JSON 等返回类型的方法。

【讨论】:

    猜你喜欢
    • 2019-12-18
    • 1970-01-01
    • 1970-01-01
    • 2013-07-27
    • 1970-01-01
    • 2013-08-14
    • 1970-01-01
    • 2017-08-08
    • 1970-01-01
    相关资源
    最近更新 更多