为什么我的界面不能导入我的班级?我只想测试一些接口,并且需要将一个方法扩展到我的类中,以实现我的接口。我认为这很简单,但它给我一个错误,我会在底部列出。我的方法是公开的,它让我和错误。事实上,我把公共关键字拿走了,它仍然给我一个错误。
是否有一个快捷键可以将所有方法导入到类中。
代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace FlowControl
{
public abstract class Grades : iBase, iFoot
{
public abstract void AddGrade(float grade);
public abstract void ComputeStatistics();
public void WriteGrades(string t)
{
}
public int AddTwo(int a, int b)
{
return 0;
}
void findYourScore() { }
}
public interface iBase
{
public void findYourScore();
}
public interface iFoot
{
}
}
但是我收到了这个错误:
修饰符' public'对此商品无效
答案 0 :(得分:7)
您无法在接口方法,属性,事件或索引器上指定访问修饰符。界面本身标记为公共,因此其所有成员也是隐式公开的。但是,您必须指定一个访问修饰符,您可以在其中实现该方法(除非您正在编写显式的接口成员实现)。
例如:
public abstract class Grades : iBase, iFoot
{
...
public void findYourScore() { }
}
public interface iBase
{
void findYourScore();
}
进一步阅读
答案 1 :(得分:2)
您无法在界面内指定访问修饰符。您只需指定方法的签名
public interface iBase
{
void findYourScore();
}
接口可以包含方法,属性,事件,索引器或这四种成员类型的任意组合。接口不能包含常量,字段,运算符,实例构造函数,析构函数或类型。 界面成员自动公开,并且不能包含任何访问修饰符。成员也不能是静态的。
答案 2 :(得分:1)
就像
一样简单public interface iBase
{
void findYourScore();
}
接口成员不需要访问限定符。然后,public
在此上下文中无效,正如编译器所说。
答案 3 :(得分:0)
接口不指定保护级别或方法,也不实现它们。删除public
/ private
部分,您的代码将正常运行。实现接口的类确定访问级别。如果您需要指定访问级别,请使用abstract class
而不是接口。