最近、C# が許可されていることがわかりました。
たとえばIScreen
、Caliburn.Micro では、http: //caliburnmicro.codeplex.com/SourceControl/latest#src/Caliburn.Micro/IScreen.cs でこれを行います。
namespace Caliburn.Micro
{
public interface IScreen : IHaveDisplayName, IActivate, IDeactivate,
IGuardClose, INotifyPropertyChangedEx
{
}
}
IScreen
実装するクラスが他のインターフェイスも実装する必要があることを意味するため、これが役立つ理由がわかります。
しかし、C# がそのコンパイラとランタイムをどのように処理するのか疑問に思います。
この質問の背景/コンテキスト:
私は、インターフェイスがメソッド テーブルを定義し、インターフェイスを実装するクラスが独自のメソッド テーブルと、実装するインターフェイスのメソッド テーブルへのポインターの両方を持っているというバックグラウンドを持っています。
私の心に渦巻く副次的な質問は、私が過去に人々と行ったさまざまな複数クラスの継承に関する議論から生じており、それらはこのケースにも当てはまると思います。
- インターフェイスが複数の基本インターフェイスから継承できるようにすると、そのテーブル内のメソッドの順序はどうなりますか?
- これらのインターフェイスが共通の祖先を持つ場合はどうなるでしょうか? これらのメソッドはテーブルに複数回表示されますか?
- これらのインターフェイスの祖先が異なっていても、メソッド名が似ている場合はどうなるでしょうか?
(ここではメソッドという言葉を使用しています。これは、インターフェイスで定義されたプロパティに get_ または set_ メソッドがあることを意味しています)。
これについての洞察と、この質問をより適切に表現する方法に関するヒントは大歓迎です。