BT

C#の機能:動的タイプトオブジェクトおよび複数ディスパッチ

| 作者: Jonathan Allen フォローする 530 人のフォロワー , 翻訳者 編集部 フォローする 0 人のフォロワー 投稿日 2008年10月31日. 推定読書時間: 1 分 |

最初のC#の機能について詳細に調べる前に、MicrosoftがC#にあるあらゆる機能をVBで提供する(その逆も)ことを約束していることをここで述べておく。しかしながら、必ずしも同様の方法で提供されるとは限らず、言語は引き続き分岐することが予想される。

動的言語やDLRの重要性が高まる中で、C#は動的に型付けされたオブジェクトと動作できることが必要とされる。現在、リフレクションや静的クラス経由で レイトバウンドコールをすることが可能であるが、これには多くのコードが必要である。その上、DLRオブジェクトの呼び出しには、DLRのリフレクション ライブラリを使用して、全く異なる呼び出しが必要である。

C#においては、単にオブジェクトの静的タイプを「動的」として宣言するだけである。VBのOption Explicit Offのように、ランタイムコールでメソッドバインディングを解決するために、コンパイラに必要なコードを出力するように言う。ILでは、動的として宣言 された変数は、System.Objectのような種類であり、動的呼び出しセマンティクスを使用することを示した追加のタグがついている。

ランタイムでは、通常のオーバーロードソリューションのすべてのルールが、オブジェクトのランタイムタイプに対して動作する。これは、リフレクションをジャンプしたり、ビジターパターンを使用せずに、複数のディスパッチを直接実行することができることを意味する。

各動的言語には、メンバールックアップの独自のルールがある。サポートのため、このオブジェクトはIDynamicObjectインターフェイスを 実装することができる。ランタイムオブジェクトにある場合、オブジェクトは独自のメンバールックアップを処理するようになる。デモのとき、Anders氏 はC#自体で動的オブジェクトを定義する方法を示した。

そして当然ながら、必要なときはどこででもC#でダックタイピングを使用することができる。

原文はこちらです:http://www.infoq.com/news/2008/10/CSharp-Dynamic

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT