gpt4 book ai didi

c# - 当我想拥有一个基本接口(interface)并从中实现时,调用在以下方法或属性之间不明确

转载 作者:太空宇宙 更新时间:2023-11-03 21:01:00 25 4
gpt4 key购买 nike

我知道以下方法或属性之间的调用不明确,并且我知道这个错误的含义,但你看到了这个实现。我在界面上看到了正在创建的每个类的示例,但我使用的是 IOC。

 interface IOne
{
void Save(string text);
}
interface ITwo
{
void Save(string two);
}
class One : IOne
{
public void Save(string text)
{
throw new NotImplementedException();
}
}
class Two : ITwo
{
public void Save(string two)
{
throw new NotImplementedException();
}
}
interface IBase : IOne, ITwo
{

}
class Base : IBase
{
void ITwo.Save(string two)
{
throw new NotImplementedException();
}

void IOne.Save(string text)
{
throw new NotImplementedException();
}
}
class RunClass
{
private readonly IBase _base;
public RunClass(IBase @base)
{
this._base = @base;
}

public void SaveMethod(string t = "Test")
{
_base.Save(t);
}

}

当我调用此行 _base.Save(t); 时出现此错误调用在以下方法或属性之间不明确。有没有办法实现这种类型的实现?

最佳答案

首先您需要知道您要调用两个Save 方法中的哪一个。然后你可以通过显式转换来实现它:

public void SaveMethod(string t = "Test")
{
((IOne)_base).Save(t);
// or
((ITwo)_base).Save(t);
}

关于c# - 当我想拥有一个基本接口(interface)并从中实现时,调用在以下方法或属性之间不明确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45572705/

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