[工具] 網路工具-SharpLab


SharpLab

用途

透過 SharpLab 可以瞭解 C#語法糖(Syntactic sugar)與 IL(Intermediate Language),當然也可以透過一些工具去反編譯出來,但身為工程師就是,能少做一些事情就少做!

如何使用

操作介面

  1. 選擇程式語言 (C#, VB, F#)
  2. 輸出的結果
  3. Build 結果 (Debug, Release)

語法糖

語法糖(Syntactic sugar): 是由英國”彼得·蘭丁”發明的一個術語,方便程式設計師使用,此語法對語言的功能並沒有影響

例如下面寫法用語法糖寫出來最後跟一般寫法相同:

// 語法糖
public string MyName { get; set; }

用了語法糖的程式碼是不是簡單許多,不用在寫一長串程式碼

// 一般寫GET/SET寫法
private string _myName;
public string MyName
{
    get { return _myName; }
    set { _myName = value; }
}

中間語言

IL(Intermediate Language): 中文就是”中間語言”。CIL 類似一個物件導向的組合語言,並且它是完全基於堆疊

我們用常見 string fomat 來看編譯出來是什麼

var concat = 100;
_ = $"Hello {concat}";

可以看到轉換成 IL 後程式實際做了哪些事情,如果有細心觀察一下會發現裡面偷偷做了boxing的動作。

(🎏之後會補充說明boxingunboxing) 補充

IL_0000: nop
IL_0001: ldc.i4.s 100
IL_0003: stloc.0
IL_0004: ldstr "Hello {0}"
IL_0009: ldloc.0
IL_000a: box [System.Private.CoreLib]System.Int32
IL_000f: call string [System.Private.CoreLib]System.String::Format(string, object)
IL_0014: pop
IL_0015: ret

參考資料


作者: PuTaoNi
版權聲明: 本站所有文章除特別聲明外,均採用 CC BY 4.0 許可協議。轉載請註明來源 PuTaoNi !
 上一篇
[SEO] 什麼是網站地圖 Sitemap [SEO] 什麼是網站地圖 Sitemap
介紹網站地圖 Sitemap 概念與設定上有需要注意的細節,它是一種用來提供網站資訊的檔案,您可以在其中列出網頁、影片和其他檔案的資訊,並呈現這些內容彼此間的關係。
2021-11-02
下一篇 
[心靈] 培育園第一步 [心靈] 培育園第一步
因為某個契機讓我發現自己參加很了多研討會跟學習很多技術,但都無法內化成自己能力(簡單來對技術深度不足),因此萌生了開始寫部落格想法,一方面調整自記學習方式,也順便訓練自己語文表達能力,期望透過寫部落格讓自己成長並幫助想一起成長的人。
2021-10-29
  目錄