当前位置:  开发笔记 > 编程语言 > 正文

C#不明确的调用 - 不同的返回类型

如何解决《C#不明确的调用-不同的返回类型》经验,为你挑选了2个好方法。

我有2个扩展方法将MongoDB文档转换为实体/对象.

public static ProductTemplate Convert(this Document document)
{
    return null;
}

public static Product Convert(this Document document)
{
    return null;
}

这给出了一个预期的模糊调用错误,所以我想知道如何解决这个问题?

友好的问候,

Pickels



1> Tomas Aschan..:

你可以使你的Convert方法通用:

public static T ConvertTo(this Document doc) where T : SomeBaseClassOrInterface
{
    return null;
}

然后像这样使用它:

var document = new Document();
var temp = document.ConvertTo(); // returns a ProductTemplate
var prod = document.ConvertTo(); // returns a Product



2> Dave Markle..:

函数不能通过返回类型重载.您必须将您的功能重命名为:

ConvertToProductTemplate()和ConvertToProduct()

或者将它们转换为一个返回公共基类或接口的函数.(但是当调用者得到你的结果时,他们必须做一个演员)

推荐阅读
喜生-Da
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有