- - PR -
特集「私がJavaからC#に乗り換えた10の理由」について
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2003-07-17 09:30
自分で読んで自分で判断してください。ただし、@itで議論されている内容やC#に取り入れられている機構がここにいる人たちにとっては新しい機構に思えたとしても、実際にはそうではないということだけは認識しておく必要があると思います。 | ||||||||
|
投稿日時: 2003-07-17 09:35
なんか議論がかみ合っていないですね。
delegateは、型(class)そのものですよ。 英-Ranさんの参考のjava-houseの中でも想像されていますが、 ildasmで見てみればはっきりします。 参照先で言っているのは、 ・delegateは「型の継承」をしていないものに多様性を与えている ということです。 「型の継承」の定義は一般的に合意されていないでしょうが、上記主張はその通りでしょう。 但し、参考のjava-houseの中で高木さんは、delegateが「センスの悪い」と言っていますが、これには賛成しかねます。delegateは、よく練られていて洗練されていると思っています。 議論に参加している人は、下記書籍などを読まれることを望みます。 プログラミングMicrosoft .NET Framework http://www.amazon.co.jp/exec/obidos/ASIN/4891003030/ Essential .NET http://www.amazon.co.jp/exec/obidos/ASIN/4891003685/ | ||||||||
|
投稿日時: 2003-07-17 09:55
納得しました。想像が根拠ではなく、実際にdelegate==型(class)なのですね。
私が知りたかったことは、内容そのものよりも、「想像上の理論」が根拠だったのかどうか、なのです。 「想像」を元にした内容をいくら読んでも、その疑問には答えてくれません。 幸いcatsさんが示してくれましたが。 以上、この議論そのものには関わりたくないので、このスレッドからは消えます。 [ メッセージ編集済み 編集者: ぢゃん♪ 編集日時 2003-07-17 09:56 ] | ||||||||
|
投稿日時: 2003-07-17 09:59
>catsさんの書き込み (2003-07-17 09:35) より:
>なんか議論がかみ合っていないですね。 ひょっとして,C#のdelegateはマイクロソフト地方の方言なのでは? とすればかみ合わなくても不思議はない.よくある話です. | ||||||||
|
投稿日時: 2003-07-17 10:29
全然関係ないですが、こんなの出てます。
Microsoft Java Language Conversion Assistant 2.0 http://microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=46BEA47E-D47F-4349-9B4F-904B0A973174 (Java 言語のコードを Visual C#に自動的に変換するツール) VS.NET2003が必要なので試していません。 #そういえば、今日はデビュー1周年=誕生日だ... | ||||||||
|
投稿日時: 2003-07-17 10:34
objectです。
>catsさん 私も一応 「プログラミングMicrosoft .NET Framework」 「Essential .NET」 を読んでいますが、「Essential .NET」はまだ途中です。 私は「delegate」が実際に「class」に変換されているから型そのものだ、というのは少し弱いと思います。 それは、「delegate」が型(Class)である事を確認しただけだと思います。 問題は、 何故「delegate」が型でないといけないか に対する納得だと私は思いますよ? 「議論がかみ合っていない」様に見えるのは、英-Ranさんが引用だけで議論し、何かあると直ぐに個人攻撃をして、まともに話をしようとしないからだと思います。 私は「オブジェクト指向」は、まだまだスタートしたばかりだと思っています。 その中で、「Class」は抽象データ型を記述する為の、最も原始的で、しかも単なる手段だと思っています。 「Class」至上主義で、「Class」の殻から出ない事に一番の価値を見出している限り、「Class」を超える新しい概念も出て来ないと思います。 実際、この様な場でも本音の議論が出来ないですよね。 | ||||||||
|
投稿日時: 2003-07-17 10:48
.NETフレームワークでは、デリゲート型はSystem.MulticastDelegateを親に持つクラス型です。
問題となっているのは、メソッドの引数と返り値が同じであれば、作成者が意図していない(リンク先の言葉で言う継承されていない)型のデリゲートの値とすることもできるという事です。 それで、前の私の書き込みの メソッドに明確な型を持たせるというのも面白いかもしれませんね となるわけです。
「共通点を見つける」というのには納得しました。 システム開発でも 1.「田中さん・佐藤さん・鈴木さんがいる。鈴木さんは毎月初めに田中さんに・・・」(現在の物理モデルを作る) 2.「田中さん・佐藤さんは同じ性質を持っているのでグループ化できる。グループの名前は正社員。鈴木さんは別の性質を持っている、名前は派遣社員。正社員と派遣社員もグループに・・・」(クラスを用いた論理モデルを作る) とすると思いますが(OOでは物理モデルとか論理モデルとか言わないんでしたっけ?)、同じ性質を持っているもの(インスタンス)をグループ(すなわちクラス)化することで、モデルがより捉えやすくなります。 メソッドの「性質」というのがすなわち「引数と返り値」という事なんですよね?だから同じdelegate型で参照できても良いと。 「型の発散を招く」というのも分かりました。想像してみましたが、確かに面倒くさくなりそうです。(ここら辺がC#的。JavaならOO的に正しくするべき、となるでしょう) 「同じ型から派生したものだと考える事ができる」というのは納得できませんでしたが。
実は無名InnerClassについて良く分かっていません。 これから調べてみますので、ちょいとお待ちを。 しかし、こういう話をするのって楽しいですね。 私の周りでしようとしても、議論がかみ合う合わない以前に乗ってこないですよ。 飲み会でこんな話振ろうもんなら、「こんな所でまで仕事の話したくね〜」とか言われそうだし。 [ メッセージ編集済み 編集者: 一郎 編集日時 2003-07-17 11:18 ] | ||||||||
|
投稿日時: 2003-07-17 11:00
改めて自分の知識、技術、意欲の不足を感じながら・・・
同感。とっても理解が進んでいる“気がします”。 #実は、私がサマリーを作りたかったりする(自爆) ↑ で、ここの「規約」を調べたのですが、会議室への投稿は、 すべて@ITの「著作物」になるようです。 仮に議事録なり要約なりを作ったとして、それって、どうやって配る?見せる? このスレッド内で「スレッド」が複数できているので、 単純なペーパーにするのは難しいなぁ?と、思っているのですが・・・ #「したい」と「する」は違うので、注意 |