接口无需实现方法

时间:2016-09-22 10:36:37

标签: c# oop

我的主要班级......

[Serializable]
    public class SVO : Operation, IAddSizeAbility, IRemoveSizeAbility
    {
        public SerializableDictionary<string, SerializableDictionary<string, decimal>> Data = new SerializableDictionary<string, SerializableDictionary<string, decimal>>();



        public SVO() //Default Constructor
        {
            SerializableDictionary<string, decimal> line = new SerializableDictionary<string, decimal>();
            line.Add("Size - 0", 0.00M);
            Data.Add("OP - 0", line);

        }

        public void AddSize()
        {
            throw new NotImplementedException();
        }
    }

我的界面......

public interface IAddSizeAbility
    {
        void AddSize();
    }

 public interface IRemoveSizeAbility
    {
        void RemoveSize();
    }

问题是虽然我正确地实现了IAddSizeAbility interace,但我没有实现IRemoveSizeAbility但是它让我编译这是一个错误吗?

当我创建一组新的接口类时,我无法复制该问题。

我已经包含了图片,因此您可以看到未实现的界面下没有红色下划线

I have included image so you can see there is no red underline under the interface that is not implemented

我的测试图像可以满足你的期望。 And an image of my test which does what you would expect.

1 个答案:

答案 0 :(得分:8)

当您声明某个类型的class实现interface并且该类型继承自已实现interface的另一个类型时,编译器仍将满足作为类型没有违反合同。

在您的情况下,由于Operation已经实施IRemoveSizeAbility,您就可以了。