2016-09-22 89 views
3

我的主类...接口不必要求实现方法

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

+4

也许'Operation'已经实现了它? – haim770

+0

不是那个,或者你的项目中有多个'IRemoveSizeAbility'接口。 – DavidG

+0

@ haim770是的你是对的,不能相信我错过了它,发布你的答案,我会接受。 – user3755946

回答

8

在声明某些类型的class为实现一个interface以及该类型从已实施interface另一种类型的继承,编译器仍然会满意,类型不撕毁合同。

在你的情况,因为Operation已经实现IRemoveSizeAbility,你很好去。