私が知っているように、継承されたクラスのインスタンスを、必要なメソッドが実装されているインターフェイスにアップキャストしてから呼び出す必要があります。
interface IProcess
{
void Do() { Console.WriteLine("doing"); }
//...
}
interface IWait
{
void Wait() { Console.WriteLine("waiting"); }
//...
}
class Example : IProcess, IWait { }
static void Main(string[] args)
{
Example item = new Example();
(item as IProcess).Do();
(item as IWait).Wait();
}
必要なさまざまなメソッドのデフォルト実装を備えたインターフェースがほとんどない場合はどうなりますか? これを解決できるパターンはありますか、それとも特定のインターフェイスのメソッドを呼び出すために常にasキーワードを使用する必要がありますか?