gpt4 book ai didi

c# - 接口(interface)实现错误

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

我是 C# 编程的新手,我知道这是一个业余问题,所以请不要笑我!

我声明了这些接口(interface)

class derived : iInterface3
{
double[] d = new double[5];
public override int MyProperty
{
get
{
return 5;
}
set
{
throw new Exception();
}
}
int iProperty
{
get
{
return 5;
}
}
double this[int x]
{
set
{
d[x] = value;
}
}
}
class derived2 : derived
{

}
interface iInterface
{
int iProperty
{
get;
}
double this[int x]
{
set;
}
}
interface iInterface2 : iInterface
{ }
interface iInterface3 : iInterface2
{ }

即使我将 iInterface 的所有成员都实现到派生类,但我仍然收到此错误。

'final_exam_1.derived' does not implement interface member 'final_exam_1.iInterface.this[int]'. 'final_exam_1.derived.this[int]' cannot implement an interface member because it is not public.

还有这个

'final_exam_1.derived' does not implement interface member 'final_exam_1.iInterface.iProperty'. 'final_exam_1.derived.iProperty' cannot implement an interface member because it is not public.

为什么?

提前感谢您的帮助!

最佳答案

您需要添加public access modifier派生自该类的所有成员。

通过 default他们的访问权限较低。

此外,您需要删除 override,因为在实现接口(interface)时没有什么可覆盖的。覆盖是指存在您希望覆盖的虚拟方法。

class derived : iInterface3
{
double[] d = new double[5];

public int MyProperty
{
get
{
return 5;
}
set
{
throw new Exception();
}
}

public int iProperty
{
get
{
return 5;
}
}

public double this[int x]
{
set
{
d[x] = value;
}
}
}

您的代码还有其他问题,但这些是无法编译的原因。

关于c# - 接口(interface)实现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14296328/

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