[英]I get an “Inconsistent Accessibility” error
public class Employee : IEmployee
{
private String name;
private String department;
private int salary;
private List<IEmployee> subordinates;
public void addEmployee(String name, String department, int salary)
{
this.name = name;
this.department = department;
this.salary = salary;
}
public void addSubordinate(IEmployee e)
{
subordinates.add(e);
}
interface IEmployee
{
void addEmployee(String name, String department, int salary);
String getEmployeeInfo();
void addSubordinate(IEmployee e);
}
public void If_We_Add_Alan_As_Johns_Subordinate_We_SHould_get_that()
{
ObjectFactory.Configure(x =>
{
x.For<IEmployee>().Use<Employee>();
});
var DairyManager = ObjectFactory.GetInstance<IEmployee>();
var Cashier = ObjectFactory.GetInstance<IEmployee>();
Cashier.addEmployee("Alan", "cashier", 1000);
DairyManager.addEmployee("John", "CEO", 10000);
DairyManager.addSubordinate(Cashier);
錯誤說:
可訪問性不一致:與方法
Employee.addSubordinate(Supermarket.IEmployee)
相比,參數類型IEmployee
的訪問性較差...
您尚未為界面提供訪問修飾符:
interface IEmployee
因此, 默認(隱式)訪問修飾符為internal
。 只需添加public
,就像這樣:
public interface IEmployee
您應該將接口標記為公共。
public interface IEmployee
由於Employee
的訪問修飾符是公共的,因此對於Employee
實現的interfaces
也應保持相同。
您只需要在界面中添加可訪問性修飾符即可:
public interface IEmployee
這將修復錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.