C〓〓4.0動態言語

2360 ワード

ネットで未来を紹介する文章を見ました.http://blogs.msdn.com/charlie/archive/2008/01/25/future-focus.aspx
    文章の大まかな意味は、C〓〓の未来の発展方向はきっと動態言語に対する支持のこの方向に向かって、C〓〓〓〓が更に多くの動態の言語の特性に参加するのだと肯定することができて、この点はやはり期待に値して、文章の中で未来のC〓〓が“dynamic look up”の動態の特性を支持することを指摘します.    現在明らかにされている文法形式はこうです.    static void Main(string[]args)    {        dynamic        {            object mynamicObject=GetDynamicObject()            mynamicObject.SomeMethod()        //call a method            mynamicObject.someString=「value」//Set a field            mynamicObject[0]=25;             //Access an indexer        }    }    キーワード「dynamic」を使って、「dynamic lookup」を使いたいと思います.コンパイラはコンパイル時に「mynamicObject」に次のドメインや方法があるかどうかをチェックしません.Dynamic look upというものをDLRで強引に呼び出してみます.間違えたら、例外を捨てようとします.個人的な理解は、いわゆる「dynamic look up」をサポートします.しかし、本質的にはすべてILコードにコンパイルして再実行する必要があります.本質的にはまだ静的です.キーワード「dynamic」を使う目的はコンパイラにこの中でコンパイル検査をしないでくださいと教えて、それを通過させて、DLR部分機能を呼び出して、このような「dynamic look up」の特性を実現します.    記事は「dynamic look up」を採用した3つのシーンを挙げています.一つはCOMコンポーネントとの相互操作です.もう一つはIroPython or IreonRubyをより便利に呼び出すことができます.
 
著者が提案した二つの問題についてdynamicを理解した.
◆プログラムを書く時、知能感知が少なくなりました.
◆プログラムを実行すると速度が遅くなります(反射)
New feature s in CSharp 4.docxを見てやっと分かりました.大丈夫なうちに、ものを整理します.dynamicが何のために使うのかまだ分からない友達に参考にしてほしいです.もちろん、私は才能が浅いので、すべての観点が正しいとは保証できません.弁証法の目でこの文章を見てください.間違いがあれば、ご指摘ください.
すなわち、dynamicキーは、動的オブジェクトを宣言するために使用され、その動的オブジェクトを介して方法または読み書きの属性を呼び出します.
C鑰2.0または3.0を使用する場合、一つのオブジェクトが実行時に決定され、インタフェースや基本的な情報がない場合、反射技術を使用してこの未知の画像の方法や属性を呼び出すのが一般的ですが、C隺4.0から提供されたdynamicはこれらの作業を簡単にすることができます.私たちのプログラムが実行時に不確定なタイプのオブジェクトを取得すると仮定します.このオブジェクトには必ずPrint()の方法があります.この方法を呼び出していくつかの情報をプリントアウトする必要があります.そうすると、C刍葃4.0の下で、次の二つのコードでこの需要を実現できます.
dynamic unknowObj = GetDymanicObject();
unknowObj.Print();  //           
このような解決方法は反射でPrintメソッドを呼び出すよりも簡潔であるべきですよね?プログラマーがやるべきことは、メソッド名をPrint()と間違えないようにしてください.VVS 2010はdynamicオブジェクトにスマートヒントを提供しません.VS運行時のこのunknowObjは何ですか?
ここに来て、多くの友達がこの例から分かるようになります.プログラムがunknowObj.Printにコンパイルされると、VSは反射コードを生成してくれます.反射の方式でPrintという方法を呼び出します.実質的には自動反射してくれます.
この点を理解すれば、Cピラがなぜdynamicをやるのか、知能感知もなく、動きも遅いモンスターが出てくるのかが分かります.
New feat ures in CSharp 4によると、dymanicは主に次のシーンに適用されます.
1、自動反射
2、COMコンポーネントの相互操作
3、混合プログラミング、例えばIronRubyとIroPython
4、Html DOMオブジェクトの取り扱い
これらの仕事を処理した友達がいれば、理解するのは難しくないでしょう.
具体的な内容は、New feature s in CSharp 4を皆さん自身で見てください.