簡體   English   中英

我收到“不一致的可訪問性”錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM