學習計畫第一步

2021-06-21 05:01:11 字數 1243 閱讀 3368

c#是靜態

強型別語言。而在很多情況下,提供「動態」行為,是常常發生的事情,例如通過反射在執行時訪問.net型別、呼叫

動態語言物件、訪問com物件等,都無法以靜態型別來獲取。因此, c# 4.0引入的又乙個全新的關鍵字dynamic,也同時引入了改善靜態型別與動態物件的互動能力,這就是動態查詢(dynamic lookup)例如:

public static void main()

就像乙個object可以代表任何型別,dynamic使得型別決斷在執行時進行,方法呼叫、屬性訪問、委託呼叫都可動態分派。同時,動態特性還體現在構建乙個動態物件,在c# 4.0實現idynamicobject介面的型別,可以完全定義動態操作的意義,通過將c#

編譯器作為執行時元件來完成由靜態編譯器延遲的操作,例如:

dynamic d = new foo();

string s;

d.mymethod(s,3,null);

在具體執行過程中,c#的執行時繫結器基於執行時資訊,通過反射獲取d的實際型別foo,然後在foo型別上就mymethod方法進行方法查詢和

過載解析,並執行呼叫,這正是動態呼叫的背後秘密:dlr。在.net 4.0中將引入重要的底層元件dlr(dynamic language runtime,

動態語言執行時),除了實現動態查詢的基礎支援,dlr也同時作為基礎設施為類似於ironruby、ironpython這樣的動態語言提供統一的互操作機制。總而言之,動態程式設計將為c#在以下領域產生巨大的變革:

· office程式設計與其他com互動。

· 動態語言支援,在c#中消費ironruby動態語言型別將並非難事,體驗動態語言特性指日可待。

· 增強反射支援。

以呼叫ironrython為例,我們只需引入ironpython.dll,ironpython.modules.dll,and microsoft.scripting.dll,即可通過建立scriptruntime在c#中hostingironpython環境,進而來操作

動態語言的型別資訊。

scriptruntime py = python.createruntime();

dynamic mypy = py.usefile("myfile .py");

console.writeline(mypy.mymethod("hello"));

雖然從 微軟當前提供的技術資料和ctp演示中,動態查詢還存在或多或少的問題,但是在「動態」大行其道的今天,我們無法迴避也必須擁抱這個未來的主角,因為我堅信明天會更好。

學習第一步

開始 系統 命令提示符 win r鍵 輸入cmd開啟控制台 碟符切換 檢視當前目錄下的所有檔案 dir 切換目錄 cd change directory 跨碟符 cd d cd.清理螢幕 cls clear screen 退出終端 exit 檢視電腦的ip ipconfig 開啟應用 calc 計算...

Hibernate學習第一步

今天我在網上查的hibernate學習的基礎的第乙個簡單例子。實體類 如下 package domain public class news public void setuserid integer userid public string getusername public void setu...

Jquery學習第一步

最近有做畢業設計有空閒時間,除了答辯以外,還想稍微學一學前段的一些基礎知識,jquery,requirejs,vue.js一步一步學習吧,活到老學到老!這裡先介紹一下第一天學習的jquery,都比較基礎 html 點我隱藏 js js document ready function document...