インターフェイスを定義および/または実装する方法について、ここで混乱していると思います。
そこにあるのは、という名前のクラスですDefault1
。これは、名前の付いた内部のネストされたインターフェースを定義していますDefault1
。これには 3 つの問題があります。
それはできません。名前が曖昧になる可能性があるため、名前を同じにすることはできません。エラーメッセージはここでかなり明確でした。(他の人が述べているように、インターフェースは通常ISomething
、名前の競合を解決する と呼ばれます。
そのインターフェースは奇妙な方法で定義されています。内部(@FishBasketGordoに思い出させてくれてありがとう!)クラス内にネストされています。つまり、定義したアセンブリ内でのみ表示され、次のように参照する必要がありますDefault1.IDefault
(名前を修正したと仮定します)。
インターフェイスを実際に実装しているものはないため、どこでも使用されていません。
インターフェースを定義したい場合、クラスは必要ありません:
namespace MyLevel
{
public interface IDefault
{
IEnumerable<DefaultCore> GetDefaultValues();
}
}
クラスにそのインターフェースを実装したい場合:
namespace MyLevel
{
public class Default1 : IDefault
{
public IEnumerable<DefaultCore> GetDefaultValues() { }
}
}