gpt4 book ai didi

c# - 具有相同签名的成员已被声明

转载 作者:行者123 更新时间:2023-11-30 22:26:27 26 4
gpt4 key购买 nike

我知道这意味着什么,但想要优雅地解决这个问题。对于变通解决方案,我可以创建具有不同签名的方法,但这不会让我满意。我的场景如下:

public interface IDomainToViewMapper<TModel, TViewModel>
{
TViewModel MapDomainToView(TModel source);
}

public interface ISiteMapper : IDomainToViewMapper<Site, ViewModelOne>,
IDomainToViewMapper<Site, ViewModelTwo>
{ }

现在,当我编写我的主要实现类时,我得到了具有相同签名问题的成员。我可以继续并显式实现接口(interface),但因为我们正在动态注入(inject)依赖项,所以我无法强制转换为接口(interface),这将再次变得模棱两可。

    public SiteMapper : ISiteMapper
{
public ViewModelOne MapDomainToView(Site site) { ... }
public ViewModelTwo MapDomainToView(Site site) { ... }
}

任何优雅的解决方案都会很棒

最佳答案

这是因为 c# 不允许您仅根据返回类型重载方法 - 在确定两个方法是否具有相同签名时仅考虑方法参数。

唯一的解决办法是稍微调整一下您的 API 设计。

编辑:抱歉,当我重新阅读您的问题时,我意识到您已经知道错误的原因并且正在寻找如何重新设计您的 API。所以请忽略我的回答!

关于c# - 具有相同签名的成员已被声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11772871/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com