私はインターフェースを持っています:
public interface Profile
{
string Name { get; }
string Alias { get; set; }
}
実装するすべてのオブジェクトにProfileはNameとがありますが、常に と同じになるようにAlias制限するものもあります。この制限を適用するものは、次のように実装できます。AliasNameAlias
string Profile.Alias
{
get
{
return ((Profile)this).Name;
}
set { }
}
this明示的なインターフェイス実装のコンテキスト内では、可能な型のみであり、それが実装されているクラスまたは他のインターフェイスではなく、インターフェイスProfileを介してアクセスされたことがわかっているため、キャストが必要なのはなぜですか?Profile
getter 実装に使用return this.Name;すると、次のエラーが発生します。
Type `ConcreteProfile' does not contain a definition for `Name' and no extension method `Name' of type `ConcreteProfile' could be found (are you missing a using directive or an assembly reference?)