接口语法 - 使用属性访问器的显式前缀

时间:2017-06-14 14:19:57

标签: c#

给出接口定义及其实现:

public interface IArithmetic
{
    int Summation { get; }
    void Add(int x, int y);
}

public class Calculator : IArithmetic
{
    public int Summation { get; private set; }

    void IArithmetic.Add(int x, int y)
    {
        Summation = x + y;
    }
}

Summation的实现明确

时发生语法错误
public class CalculatorB : IArithmetic
{   
    // error: "private set;"
    int IArithmetic.Summation { get; private set; }

    void IArithmetic.Add(int x, int y)
    {
        Summation = x + y;
    }
}
  

' CalculatorB.IArithmetic.Summation.set'的可访问性修饰符   访问者必须比财产或索引器更具限制性   ' CalculatorB.IArithmetic.Summation'

访问者是否比私有更具限制性?我不确定这里的问题是什么?

set访问者下方已修改(无双关语)以修复CalculatorB的语法错误。

public interface IArithmetic2
{
    int Summation { get; set; }

    void Add(int x, int y);
}

public class Calculator2 : IArithmetic2
{
    int IArithmetic2.Summation { get; set; }

    void IArithmetic2.Add(int x, int y)
    {
        // syntax error
        Summation = x + y;
    }        
}
  

名称'总结'在当前背景下不存在。

我不确定导致语法错误的原因是什么?

0 个答案:

没有答案