日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

C# 程序集是啥

發布時間:2023/12/13 综合教程 44 生活家
生活随笔 收集整理的這篇文章主要介紹了 C# 程序集是啥 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

程序集,對于C#程序員來說一定不陌生,不就是VS生成的那些exe,dll么。是的,程序集(.net中exe與dll的區別就是exe有程序接入口, 即Main函數)就是.net框架下,可以被CLR加載并運行的一堆數據集(類似java中的jar包,無法脫離虛擬機自己運行)。它們和之前C\C++ 生成的可執行程序和動態鏈接庫有本質的區別。

說了半天,程序集里到底有什么呢。作為一堆數據集,程序集的數據可以分為:類型元數據,程序元數據,IL代碼,資源。

先說下什么是元數據,元數據一般就是指描述自身的數據。

程序集元數據:包含程序集的版本信息,安全信息,簽名等。


類型元數據:記錄了程序集將引用了哪些類,用戶自定義了哪些類,字段,數據類型等一系列信息(VS的編程助手靠的就是反射獲取類型元數據)。


IL代碼:MSIL,微軟中間語言,微軟跨語言的根基所在,所有的C#代碼都編譯成IL代碼,保存在程序集中,在被CLR加載后,由JIT調用BCL,FTL即時編譯成機器碼來讓CPU運行。

資源:圖片,視頻,音頻不一而足。

那么為什么程序集要包含這么多數據呢?有沒有想過?
其實程序集是完全自我描述性的,它是一個邏輯單元,而不是一個物理單元。它包含程序的元數據,這樣就可以被其他的應用程序或者程序集直接調用,而不需要像以前的COM組件一樣要去指定注冊表或其他數據源。而且,即使程序集分散在幾個不同的地方,也不會造成因為各個文件信息不同步而調用錯誤的情況,因為包含程序集入口的文件也包含了其他文件的位置,散列和內容。若一個文件被替換,在加載的時候會被檢測出來,拒絕程序集加載。

總結

以上是生活随笔為你收集整理的C# 程序集是啥的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。