- - PR -
特集「私がJavaからC#に乗り換えた10の理由」について
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2003-07-21 10:44
公開を停止しました。
[ メッセージ編集済み 編集者: Jitta 編集日時 2003-07-23 11:37 ] | ||||||||
|
投稿日時: 2003-07-22 00:31
なんかタイムリー。
Don Box氏 >Are delegates the moniker of .NET? http://www.gotdotnet.com/team/dbox/ 私はモニカが分かってないですが(汗)。 #「INSIDE OLE」分厚すぎ、モニカの章にたどり着く前に挫折でした。 | ||||||||
|
投稿日時: 2003-07-22 15:43
yamasaです。
このような最適化は、Java言語仕様では認められていないようです。 http://java.sun.com/docs/books/jls/second_edition/html/expressions.doc.html#253028 ところで、同様の問題は C# の Anonymous methods にもあると思うのですが、 こちらはどのように対処されているのでしょうか? > 識者の方 あと、ついでに補足しておくと、
C# にもネストしたクラスはありますが、Javaでいうところの 「static な member class」に相当するものしか存在しません。 よって、この部分の記述は C# には当てはまりません。 | ||||||||
|
投稿日時: 2003-07-23 00:02
Anonymous methods のことが分からないでいたら、別スレッド(型定義のみが異なる複数のクラス(C#))のリンク先(C# プログラミング言語の将来の機能)に載ってました。
匿名メソッドについては、匿名のクラスが生成されるらしいですから、Javaの無名インナークラスと同じですね。おそらくその匿名クラスのインスタンスにローカル変数のコピーと、メソッドが定義されているクラスのインスタンスへの参照も詰め込まれることになるのかと。(問題点もJavaと一緒?) ローカル変数への参照がない場合は、メソッドが定義されているクラスのメソッドそのものになる(匿名クラスのオブジェクトが介在しない)、とかいう最適化があるといいんですけどね。 リンク先の文で他に気になったのはジェネリクスですね。値型に対するジェネリクスを利用して、C#版の Graphic Template Library をだれかが開発してくれることに期待です (C#をDirectX9が出てから始めた身としては^^;) | ||||||||
|
投稿日時: 2003-07-23 00:09
恐れながら書き込みすみません。
Shared CLI for Mac OS X(マイクロソフト版)についてですが、tcsh上で 英文テキストは問題なく表示されますが、日本語を含んだ場合、コンパイル時点で cs1010: Newline in Constant エラーとなってしまいました。 また、ウィンドウ表示も試みましたが、 The type or namespace name 'Windows' does not exist in the class or namespace 'System' 〜〜 となり、コンパイルできませんでした。 以上より、まだ使用できるレベルではないと判断いたしました。 # ソースファイルはWin2K + .NET Framework1.1で動作確認済みのものです。 引き続き、FreeBSD、Linux上でも確認いたします。(成功した場合報告します。) また、時間があればという条件付きですがMonoプロジェクト版も 確認したい、と考えています。 [ メッセージ編集済み 編集者: Ken-Lab 編集日時 2003-07-23 00:34 ] | ||||||||
|
投稿日時: 2003-07-23 00:35
初めまして。mizuと申します。
そうなんでしょうか?確かに、リンク先を見る限り、インナークラスはエンクロージング インスタンスへの参照を保持していなければならないように思えますが、例えば、 http://java.sun.com/docs/books/jls/second_edition/html/arrays.doc.html#25566 には全ての配列アクセスは実行時にチェックされると書いてありますが、実際には、 最近のJITコンパイラには、そのようなチェックが不要な場合には、省略する最適化 を行うものがありますよね?それと同様に、エンクロージングインスタンスを使わない 場合に、参照を保持しないように最適化することは(振る舞いが同じならば)許されそう に思うのですが。 何か、問題の起きるケースがあるのでしょうか?インナークラスを継承する場合とか でしょうか? [ メッセージ編集済み 編集者: mizu 編集日時 2003-07-23 00:42 ] | ||||||||
|
投稿日時: 2003-07-23 01:02
改行文字がないにも関わらず「改行が入っている」と怒られていることから,ひょっとしたら文字コードを変更すれば何とかなるかもしれません。 #すでにいろいろな文字コードを試されていたらごめんなさい。
/r:System.Windows.Forms.dll オプションをつけてもだめでした? | ||||||||
|
投稿日時: 2003-07-23 01:21
yamasaです。
すぐに思いつくものとしては、
といったところでしょうか。 # まあ後者については、そもそも inner class のシリアライズ自体 # いろいろと問題がありますからねえ…… # ↓参考 # http://java.sun.com/j2se/1.4/ja/docs/ja/guide/serialization/spec/serial-arch.doc10.html |