2016-09-22 7 views
3

MYメインクラス...は、インターフェイスメソッドに

[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(); 
    } 

問題があります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

恐らく、「操作」はすでにそれを実装していますか? – haim770

+0

それはあなたのプロジェクトに複数の 'IRemoveSizeAbility'インターフェースを持っているかどちらかです。 – DavidG

+0

@ haim770はい、あなたは正しいです、私はそれを逃したとは思わない、答えを投稿し、私は受け入れます。 – user3755946

答えて

8

あなたがinterfaceを実装すると、特定のタイプのclassを宣言し、その型がすでにinterfaceを実施している別のタイプから継承する場合はタイプが契約を破壊しないよう、コンパイラはまだ満足するでしょう。

OperationはすでにIRemoveSizeAbilityを実装していますので、あなたはいいですね。

関連する問題