我收到此错误并确定如何修复它,我正在尝试创建一个继承自Default1的加载器类,然后在该方法中使用它。
namespace MyLevel
{
class Default1
{
public interface Default1
{
IEnumerable<DefaultCore> GetDefaultValues();
}
}
}
任何帮助表示赞赏
答案 0 :(得分:3)
我认为你在这里很困惑如何定义和/或实现接口。
你所拥有的是一个名为Default1
的类,它定义了一个名为Default1
的内部嵌套接口。这有三个问题:
你做不到;名称不能相同,因为它可能会使名称产生歧义。这里的错误信息非常清楚。 (正如其他人所说,接口通常称为ISomething
,它解决了名称冲突。
该界面以奇怪的方式定义;它嵌套在内部(感谢@FishBasketGordo提醒我!)类。这意味着它只在您定义它的程序集中可见,并且必须引用为Default1.IDefault
(假设您修改了名称)。
实际上没有实现您的界面,因此不会在任何地方使用它。
如果要定义接口,则不需要类:
namespace MyLevel
{
public interface IDefault
{
IEnumerable<DefaultCore> GetDefaultValues();
}
}
如果您希望您的课程实现该界面:
namespace MyLevel
{
public class Default1 : IDefault
{
public IEnumerable<DefaultCore> GetDefaultValues() { }
}
}
答案 1 :(得分:1)
因为您已经在类中定义了接口,所以它是该类的成员,并且一个类不能具有两个具有相同名称的成员,也不能具有与该类本身具有相同名称的成员。这就是错误信息所说的内容。
因此,更改Default1
(类)或Default1
(接口)的名称。
大多数接口都按照约定以大写I
作为前缀,因此IDefault1
将是接口的不错选择。另外,无关紧要的是,为什么要在类中定义接口?
答案 2 :(得分:1)
如果希望类继承接口,则需要在类之外。其次,使用标准命名约定并在接口名称前加上I
(例如IDefault
,ICloneable
,IDisposable
等):
namespace MyLevel
{
public class Default : IDefault
{
}
public interface IDefault
{
IEnumerable<DefaultCore> GetDefaultValues();
}
}
答案 3 :(得分:-1)
您的代码未经过评估。
接口是(正常)以I
开头不要求构建,但作为LAW
是常见的去IDefault!
PRASHANT:)