最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網 會員登陸 & 注冊

80%的.Neter都不知道的技巧

2020-10-28 15:31 作者:新閣教育  | 我要投稿

每個C#初學者都應該經歷過這樣的情形:一次偶然的機會,看到別人只輸入prop,然后就快速地寫出了完整的屬性代碼,感到很神奇。然后,我們厚著臉皮問別人,別人會告訴你,輸入prop,接著連續(xù)按兩個Tab,就可以實現,你嘗試了,發(fā)現確實好用。【公眾號dotNet工控上位機:thinger_swj】


在后面的學習過程中,我們慢慢發(fā)現for、foreach、switch也都有類似的功能。

然后,可能你就會想,究竟有多少這種快捷語法呢?

你可能也只是想想而已,沒有太去深究,直到遇到了我們,今天咱們就把這個事兒弄明白。

一、揭開面紗

我們打開Visual Studio,創(chuàng)建一個簡單的控制臺項目,然后在菜單欄中的工具中,找到代碼片段管理器,語言我們選擇CSharp,然后選擇Visual C#,我們看到了這些東西:


我們似乎有點明白了,這些快捷代碼有個專業(yè)術語叫做代碼片段,英文名稱CodeSnippet。我們看到了我們熟悉的prop、propfull、switch,也看到了一些我們不太熟悉的面孔:ctor、propg、iterindex、interator,總共大概有40個左右,下面我們對一些目前開發(fā)中,常用的CodeSnippet做一下說明:

1、#region:代碼折疊器

2、ctor:構造方法

3、class:類

4、cw:控制臺輸出

5、do:do-while循環(huán)

6、for:for循環(huán)

7、foreach:foreach循環(huán)

8、forr:for逆循環(huán)

9、lock:鎖

10、mbox:messagebox.show

11、prop:簡化屬性

12、propfull:完整屬性

13、switch:switch-case

14、try:異常捕獲


15、tryf:帶finally的異常捕獲

16、using:using

17、while:while循環(huán)

二、探索原理

我們繼續(xù)研究,看下Code Snippet是怎么實現的。


其實Code Snippet只是一個 文件,只不過包含了一些只有 Visual Studio 才認識的元素,這些元素就定義了如何去替我們補全代碼,我們仍然通過菜單欄中的工具中,找到代碼片段管理器,語言我們選擇CSharp,然后選擇Visual C#,在上面的這個圖中,我們看到了位置這一欄,它指向的是一個文件路徑。【公眾號dotNet工控上位機:thinger_swj】

1、我們打開這個文件對應的文件夾,發(fā)現其實每個快捷代碼都對應一個文件。

2、我們打開一個比較熟悉的for循環(huán)對應的文件——for.snippet,默認會用Visual Studio打開,我們可以看到使用的是xml文件的格式,全部展開如下圖所示:

3、整個snippet文件由2個節(jié)點組成,分別是Header和Snippet,其中Header主要是一個聲明;Snippet包含具體代碼的形式和內容。

4、Header部分主要包含標題、快捷鍵、說明、作者和Snippet類型相關信息。

Snippet類型分為?ExpansionSurroundsWith?及?Refactoring(只能在重構過程中使用)。

Expansion:允許將代碼段插入到光標處。

SurroundsWith:允許將此代碼段放置在一段選定的代碼周圍。比如我們寫完一段代碼后,發(fā)現忘記加 try...catch... 了,這個時候可以選中需要包裹在 try...catch... 中的代碼,然后調用 Code Snippet。

5、Snippet部分是重點內容,從結構上來看,主要包括Declarations和Code兩個部分,Declarations,顧名思義就是聲明變量,而Code就是核心代碼,Code中會應用到Declarations中聲明的一些變量。這個有點像早期西門子S7-300PLC的SCL語言,需要先定義變量,然后后面才能用。

三、擴展練習一

當我們已經知道Snippet的原理之后,我們就可以制作自己的Code Snippet了。

大家可能發(fā)現了,自帶的關于異常捕獲的有try和tryf兩個,但是這兩個都無法表示try-catch-finally的邏輯,所以,我們可以先做一個try-catch-finally的Code Snippet。

1、建議還是使用復制-修改的方式來做,我們從Snippets路徑中將try.snippet文件拷貝到桌面上,然后修改如下:


2、修改好之后,直接保存并重命名為trycf.snippet

3、復制該文件到Snippets路徑中4、測試結果:在代碼編輯器中 CTRL+KL+S,就可以呼出 snippet,我們可以看到有trycf了。

四、擴展練習二


我們在實際開發(fā)中,如果發(fā)現有代碼是經常要寫的,我們不希望每次都從頭去寫,那就可以使用Snippet,這里以串口通信庫為例:

1、對于串口通信來說,我們可能每次都要編寫這些代碼,那么我們能不能把這些代碼封裝成一個Snippet呢?

2、建議仍然采用復制-修改的方式來做,我們從Snippets路徑中將tryf.snippet文件拷貝到桌面上,然后修改如下:

3、重命名為serial.snippet,并復制到Snippets文件夾中。

4、測試結果如下:

dotNet工控上位機公眾號


80%的.Neter都不知道的技巧的評論 (共 條)

分享到微博請遵守國家法律
民勤县| 淮滨县| 盐池县| 苗栗县| 凤台县| 公安县| 临安市| 大方县| 永登县| 武宁县| 高碑店市| 张家口市| 徐闻县| 普洱| 常德市| 灵川县| 巩义市| 洛川县| 如东县| 南部县| 嘉鱼县| 安化县| 确山县| 丰都县| 延边| 雅安市| 尼木县| 克东县| 佛教| 邹平县| 嘉义市| 荆门市| 津市市| 樟树市| 灵石县| 敖汉旗| 柳州市| 灵寿县| 龙口市| 诸城市| 漳平市|