C♯相談室 Part28
■ このスレッドは過去ログ倉庫に格納されています
0022デフォルトの名無しさん
2005/12/15(木) 19:03:28コンパイルが通り、期待した通りの結果が返ってくるのですが、
統合環境の(?) .NET 2003 ではコンパイルがとおりません。以下のプログラムです。
class Output {
public static Output operator << (Output cout , System.Object obj) {
System.Console.WriteLine(obj.ToString());
return cout;
}
}
class Test {
static void Main() {
Output cout = new Output();
cout <<= "ほげ";
}
}
<<エラーメッセージ>>
オーバーロードされた shift 演算子では、最初のオペランドは
それを含む型で、二番目のオペランドの型は int でなければなりません。
なぜに、このような制約が生まれたのでしょうか?
同じ動作のプログラムを .NET 2003 では実現するのは不可能なのですか?
■ このスレッドは過去ログ倉庫に格納されています