玩轉C#之【CLR】

閱讀時間約 4 分鐘

介紹

原始碼(source code)→編譯器→中繼語言(MSIL)→CLR→電腦看得懂的語言(Native code)
所以我們可以知道,CLR( Common Language Runtime ):是 .NET Framework 的虛擬機器元件 (virtual machine component),用來管理執行中的.NET程序。
📷
📷

Stack(棧)、Heap(堆)記憶體分配發生了什麼?

Stack

  • 儲存實質型別;
  • 先進後出的原則;
  • 是屬於自己維護的,當元素不再被使用會被拋出;
  • 空間較小,訪問速度快;

Heap

  • 堆(也叫做託管堆)存儲 參考型別資料;
  • 空間釋放有垃圾管理機制;
  • 堆沒有訪問限制,按照地址索引;
  • 空間較大,訪問速度比Stack慢;
📷

實質型別(值類型) VS 參考型別(引用類型)

  • 實質型別:
    bool
    byte
    char
    decimal
    double
    enum
    float
    int
    long
    sbyte
    short
    struct
    uint
    ulong
    ushort
  • 參考型別:
    class
    interface
    delegate
    object
    string

小測驗 Part1

public class Student
{
public string Name { get; private set; }

public int Tag { get; set; }

public Student(string name)
{
this.Name = name;
}
public void Show()
{
int iNum = 0;
Console.WriteLine($"This is {this.Name} {iNum} show!");
}
}
這時候,以下四個會放在Stack還是Heap?
student
Tag
Name
iNum
Student student = new Student("小昶");
student.Tag = 1;
student.Show();
答案:
student => Heap
Tag => Heap
Name => Heap
iNum => Stack

小測驗 Part2

public struct Salary
{
public int Base { get; set; }

public string Remark { get; set; }

public void Show()
{
string text = "2020年要消滅貧困人口,準備消失了!";
Console.WriteLine(text);
}
}
這時候,以下四個會放在Stack還是Heap?
salary
Base
Remark
text
Salary salary = new Salary();
salary.Base = 10000;
salary.Remark = "2020年貧困人口";
salary.Show();
答案:
salary => Stack
Base => Stack
Remark => Heap
text => Heap
結論:
參考型別一定會在HEAP裡面,實質型別要看依附的對象而決定
關於C#與IL對比解讀、GC的機制和優化之後會專門寫一篇文章跟大家講解

參考資料

本篇已同步發表至個人部落格
https://moushih.com/2022ithome24/
鐵人賽文章
為什麼會看到廣告
avatar-img
8會員
39內容數
我是這個部落格的作者,喜歡分享有關投資 💰、軟體開發 💻、占卜 🔮 和虛擬貨幣 🚀 的知識和經驗。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
一代軍師 的其他內容
小心設計模式別亂用 📷 介紹 設計模式就是過去的人,根據常見的軟體設計的問題,提出的解決方案。 設計模式總共有23種,根據情境分成三大類型,建立型、結構型、行為型。 建立型模式(Creational Patterns) 簡單工廠(Simple Factory) 工廠方法(Factory) 抽象工廠
介紹 何謂原則(Principle) A principle is a concept or value that is a guide for behavior or evaluation 所謂【原則】(Principle)就是一種【概念】或【價值】,用來導引你產生適切的行為與價值評量方法 白話文
介紹 非同步程式設計模式(Asynchronous Programming Patterns) APM 非同步程式設計模型 EAP 事件架構非同步模式 TAP 以工作為基礎的非同步模式 先在主要以TAP APM (Asynchronous Programming Model) 非同步程式設計模型.N
介紹 委派的非同步方法 可以透過BeginInvoke執行委派的非同步方法 Action<T>.BeginInvoke(<T> obj,AsyncCallback callback,Object @object) 第一個內容的 obj,只的是要傳入acction委派的參數 第二個AsyncCallb
介紹 📷 定義 處理序(Process) (大陸:進程): 一個程序運行時,占用全部計算資源的總和 執行緒(Thread) (大陸:線程):是作業系統能夠進行運算排程的最小單位。 大部分情況下,它被包含在行程之中,是行程中的實際運作單位。 C#多線程和異步(一)——基本概念和使用方法 執行緒帶來的
介紹 計算機架構相關名詞 📷 中央處理器 (CPU)Central Processing Unit Processors (處理器) Sockets (實體插槽) Cores (實體核心) Logical processors (邏輯核心) 超執行緒(HT)Hyper-Threading Tec
小心設計模式別亂用 📷 介紹 設計模式就是過去的人,根據常見的軟體設計的問題,提出的解決方案。 設計模式總共有23種,根據情境分成三大類型,建立型、結構型、行為型。 建立型模式(Creational Patterns) 簡單工廠(Simple Factory) 工廠方法(Factory) 抽象工廠
介紹 何謂原則(Principle) A principle is a concept or value that is a guide for behavior or evaluation 所謂【原則】(Principle)就是一種【概念】或【價值】,用來導引你產生適切的行為與價值評量方法 白話文
介紹 非同步程式設計模式(Asynchronous Programming Patterns) APM 非同步程式設計模型 EAP 事件架構非同步模式 TAP 以工作為基礎的非同步模式 先在主要以TAP APM (Asynchronous Programming Model) 非同步程式設計模型.N
介紹 委派的非同步方法 可以透過BeginInvoke執行委派的非同步方法 Action<T>.BeginInvoke(<T> obj,AsyncCallback callback,Object @object) 第一個內容的 obj,只的是要傳入acction委派的參數 第二個AsyncCallb
介紹 📷 定義 處理序(Process) (大陸:進程): 一個程序運行時,占用全部計算資源的總和 執行緒(Thread) (大陸:線程):是作業系統能夠進行運算排程的最小單位。 大部分情況下,它被包含在行程之中,是行程中的實際運作單位。 C#多線程和異步(一)——基本概念和使用方法 執行緒帶來的
介紹 計算機架構相關名詞 📷 中央處理器 (CPU)Central Processing Unit Processors (處理器) Sockets (實體插槽) Cores (實體核心) Logical processors (邏輯核心) 超執行緒(HT)Hyper-Threading Tec
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
Thumbnail
Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
Thumbnail
【尊重,是人際關係的基石】—取自一分鐘,小故事。 蘇東坡和佛印和尚是很好的朋友,但是兩人都喜歡彼此嘲諷對方,每次見了面,不互相較勁一下總不肯罷休。 儘管這樣激烈的脣槍舌劍常常上演,卻似乎沒有減損他們的友誼。 據說,有一天,蘇東坡與佛印兩人一起坐著打禪。 一會兒功夫,蘇東坡睜開眼問佛印:「你看
Thumbnail
(2024年10月3日的小故事思考,2024年10月8日的個人思考紀錄) 【沒有絕對的是與紛非】—取自絕對讓你感悟的小故事 善於思考成就了智者。 智者有兩個徒弟。一次,他們看到屋裏飛進一隻蜜蜂,蜜蜂努力地朝窗外飛,卻被窗上厚厚的玻璃擋住了,一次次徒勞地摔下來。 徒弟甲說:「這隻蜜蜂真是愚
Thumbnail
(2024年10月2日的小故事,2024年10月7日個人思考紀錄) 【郭子儀寵辱不驚】—蕩氣迴腸的90則歷史故事 人獲得了一定的權勢、地位,便容易受到別人的猜忌,也是福禍共生。 唐朝名將郭子儀深知此點,反其道而行,敞開府門,任人探究,結果化凶為吉,平安無事。 郭子儀爵封汾(音同焚
Thumbnail
(2024年10月1日的小故事,2024年10月6日個人思考記錄) 【騎單車的感覺更好】 有一個人因為生意失敗,迫不得已變賣了新購的住宅,而且連他心愛的小跑車也脫了手,所以單車代步。 一日,他和太太一起,約了幾對私交的夫妻出遊,其中一位朋友的新婚妻子因為不知詳情,見到他們夫婦共乘一輛單
Thumbnail
(2024年9月30日的小故事,2024年10月6日個人思考記錄) 【先把事情做對】 一個小徒弟拜師學理髮。徒弟很聰明,學得很認真,手腳也靈活,深得師傅喜歡。學習刮臉刮鬍子時,師傅先讓他在一個大葫蘆瓜上練習。 小徒弟一招一式地練,動作很細很輕,頗得師傅誇讚,就是養成了一個懷習慣:每次練
Thumbnail
進入物件導向設計的實戰階段,我們通過建立人力資源管理功能來實踐理論知識。透過這些實作練習,能夠深化對物件導向概念的理解,並學會如何在實際開發中應用這些概念。
Thumbnail
在物件導向程式設計的進階階段,學生將學習繼承、介面、抽象類別等核心概念。繼承允許類別共享屬性和方法,介面確保實現類別提供特定的方法實現,而抽象類別定義了基本結構供子類別擴展。這些知識點有助於提升程式碼的重用性、擴展性和維護性。
Thumbnail
暢銷懸疑小說的《法庭遊戲》改編為電影版,日前也在台灣上映,燒腦的情節加上法庭的諜對諜攻防;再加上永瀨廉、杉咲花、北村匠海三位高人氣演員加持。
Thumbnail
自2020年問世以來,日本潮流品牌Water The Plant便以其獨特的設計理念和色彩豐富的產品系列,在全球潮流文化中掀起了一股正能量的旋風。
Thumbnail
戴姆勒克萊斯勒出產的後輪驅動雙門跑車 Chrysler Crossfire(火線),使用 33% 賓士 SLK 跑車零件,在 2003 年推出,於 2007 年因為公司重組後停產。雖然,1:1 的新車買不起,那買台 1:18 的模型車來玩玩總是可以的。😜
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
Thumbnail
Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
Thumbnail
【尊重,是人際關係的基石】—取自一分鐘,小故事。 蘇東坡和佛印和尚是很好的朋友,但是兩人都喜歡彼此嘲諷對方,每次見了面,不互相較勁一下總不肯罷休。 儘管這樣激烈的脣槍舌劍常常上演,卻似乎沒有減損他們的友誼。 據說,有一天,蘇東坡與佛印兩人一起坐著打禪。 一會兒功夫,蘇東坡睜開眼問佛印:「你看
Thumbnail
(2024年10月3日的小故事思考,2024年10月8日的個人思考紀錄) 【沒有絕對的是與紛非】—取自絕對讓你感悟的小故事 善於思考成就了智者。 智者有兩個徒弟。一次,他們看到屋裏飛進一隻蜜蜂,蜜蜂努力地朝窗外飛,卻被窗上厚厚的玻璃擋住了,一次次徒勞地摔下來。 徒弟甲說:「這隻蜜蜂真是愚
Thumbnail
(2024年10月2日的小故事,2024年10月7日個人思考紀錄) 【郭子儀寵辱不驚】—蕩氣迴腸的90則歷史故事 人獲得了一定的權勢、地位,便容易受到別人的猜忌,也是福禍共生。 唐朝名將郭子儀深知此點,反其道而行,敞開府門,任人探究,結果化凶為吉,平安無事。 郭子儀爵封汾(音同焚
Thumbnail
(2024年10月1日的小故事,2024年10月6日個人思考記錄) 【騎單車的感覺更好】 有一個人因為生意失敗,迫不得已變賣了新購的住宅,而且連他心愛的小跑車也脫了手,所以單車代步。 一日,他和太太一起,約了幾對私交的夫妻出遊,其中一位朋友的新婚妻子因為不知詳情,見到他們夫婦共乘一輛單
Thumbnail
(2024年9月30日的小故事,2024年10月6日個人思考記錄) 【先把事情做對】 一個小徒弟拜師學理髮。徒弟很聰明,學得很認真,手腳也靈活,深得師傅喜歡。學習刮臉刮鬍子時,師傅先讓他在一個大葫蘆瓜上練習。 小徒弟一招一式地練,動作很細很輕,頗得師傅誇讚,就是養成了一個懷習慣:每次練
Thumbnail
進入物件導向設計的實戰階段,我們通過建立人力資源管理功能來實踐理論知識。透過這些實作練習,能夠深化對物件導向概念的理解,並學會如何在實際開發中應用這些概念。
Thumbnail
在物件導向程式設計的進階階段,學生將學習繼承、介面、抽象類別等核心概念。繼承允許類別共享屬性和方法,介面確保實現類別提供特定的方法實現,而抽象類別定義了基本結構供子類別擴展。這些知識點有助於提升程式碼的重用性、擴展性和維護性。
Thumbnail
暢銷懸疑小說的《法庭遊戲》改編為電影版,日前也在台灣上映,燒腦的情節加上法庭的諜對諜攻防;再加上永瀨廉、杉咲花、北村匠海三位高人氣演員加持。
Thumbnail
自2020年問世以來,日本潮流品牌Water The Plant便以其獨特的設計理念和色彩豐富的產品系列,在全球潮流文化中掀起了一股正能量的旋風。
Thumbnail
戴姆勒克萊斯勒出產的後輪驅動雙門跑車 Chrysler Crossfire(火線),使用 33% 賓士 SLK 跑車零件,在 2003 年推出,於 2007 年因為公司重組後停產。雖然,1:1 的新車買不起,那買台 1:18 的模型車來玩玩總是可以的。😜