オブジェクトのタイプをテストするときは、次のようにis
キーワードを使用するのが好きです。
if(myFood is Bannana)
Peel((Bannana)myFood);
is
オブジェクトがインターフェイスを実装しているかどうかもチェックするので、私はそれを好みます。
インターフェイスについて言えば、特定のアクションを実行する特定のタイプがある場合は、インターフェイスの使用を検討することをお勧めします。特定のタイプをチェックするには、使用される可能性のあるさまざまなタイプの知識が必要ですが、インターフェイスをチェックすると、コードを変更して処理する必要なく、このインターフェイスを実装する新しいタイプが出現する可能性があります。
if(myFood is IPeelable)
Peel((IPeelable)myFood)
else if(myFood is ICoreable)
Core((ICoreable)myFood)
特定のタイプを探す場合、考えられるすべてのタイプを現在および将来的に知る必要がありますが、これはあまりスケーラブルではありません。
もちろん、これは、他の回答の1つが説明しているように、ストレートポリモーフィズムを使用したくないことを前提としています。