C# 入門 & 実践 / C sharp
3-21. インターフェイス / キャストして使用 / is , as /
前回見たようなインターフェイスを実装したクラス ( GoodBad ) のインスタンスを
GoodBad gb = new GoodBad();
IGood ig = gb is IGood;
IBad ib = gb as IBad;
とします、すると、
ig は gb の持つ IGood の機能だけ利用できるオブジェクトになります。
ib は gb の持つ IBad の機能だけ利用できるオブジェクトになります。
とこんな方法で使用するそうです。
* is , as の違い。
ここで、is,asの両方を使ってみましたが、ほぼ同じようなものです。
is は、キャストできない場合、例外処理を行います。
as は、キャストできない場合、nullを返します。
as を使えば例外処理の必要なく進めることができます。
GoodBad gb = new GoodBad();
IBad ib = gb as IBad;
if( ib != null ){
// メソッド
ib.Bad();
}
みたいな感じで。
IBad ib = gb as IBad;
を
IBad ib = gb;
と省略した場合
is IBad
と同じになるので、実装されていない場合は、例外処理されます。
3-20. Interface / インターフェイスの実装 «
3. C# 入門 / 基礎、型、文法、基本?
C# 入門 & 実践 / C sharp