C♯相談室 Part26
■ このスレッドは過去ログ倉庫に格納されています
0698デフォルトの名無しさん
2005/10/27(木) 11:31:49{
public K cast<K>()
{
return (K)(object)this;
}
}
class DerivedA : Base { }
class DerivedB : Base { }
void TestMethod(){
Base b=new DerivedA();
DerivedA da=b.cast<DerivedA>();
Base tmp = (Base)da;
DerivedB db = b.cast<DerivedB>();
}
質問です。
このコードでreturn (K)(object)this;
の部分を return (K)this; とするとBaseを型'K'に変換できないと言われるんですがなぜでしょう?
TestMethod内のコードを削除しても同様です。
パラメータつきで呼び出しコードを書いたときにその型に応じてエラーをはくのならわかるのですが、なぜ頭から跳ねられるんでしょうか?
■ このスレッドは過去ログ倉庫に格納されています