私はC#に少し慣れていないので、なぜこれが許可されているのか混乱しています。
public interface IBase
{
}
public interface ISub : IBase
{
}
public class Thing
{
protected IBase provider;
public Thing(IBase provider)
{
this.provider = provider;
}
}
public class AnotherThing : Thing
{
protected ISub provider;
public AnotherThing(ISub provider) : base(provider)
{
this.provider = provider;
}
}
provider
密集しているだけだといいのですが、コンパイラーに混乱を引き起こさずにオーバーライドする方法がわかりません。
コードは機能します。