2009-10-30
オーバーライドするときの引数型はそのクラスではなく、Object にします。
BSTR ラッパを書いていて、 opEquals の書き方に迷った。
bool opEquals(Object o){ return this.toString == (cast(ComString)o).toString;//文字列で比較 }
o が null の場合に対応
bool opEquals(Object o){ if(o is null){ return false; } return this.toString == (cast(ComString)o).toString;//文字列で比較 }
o が ComString でない場合はどう書く?
alias Object.opEquals opEquals; //ComString 以外との比較の場合 bool opEquals(ComString o){ if(o is null){ return false; } return this.toString == o.toString;//文字列で比較 }
こうか?