【c#基礎】VS使用技巧


1:當我們用vs開發的時候,有時候遇到vs內置的庫方法不清楚怎么個用法 可以把鼠標放在不了解的方法上 然后按F1鍵就會跳轉到這個方法相應的MSDN文檔上

二:查看源碼方式

1:使用反編譯工具

2:vs2017到最新IDE 支持反編譯源碼  F12查看源碼vs設置步驟

1)工具-》選項=》文本編輯器-》c#->高級-》勾選支持導航到反編譯源

 

 3:使用Resharp

 

三:使用VS技巧

1):vs都有智能提示,當我們要看被智能提示擋住的代碼是,可以按住ctrl。Ctrl+空格可以調出智能提示框。

2):我們使用相應的微軟自帶的方法或關鍵字及編譯錯誤,不清楚用法或意思時,可以將光標指定到我們要看的地方 按F1就可以調出MSDN文檔--集成了MSDN幫助。

現在微軟的.Net編譯平台是--Roslyn。集成了編譯器管道功能,語法分析、語義分析、綁定和代碼輸出。基於此重寫了VS集成工具。代碼編輯器、智能感知和重構都基於.Net編譯器平台。

3):當我們需要命令和功能時,不知道需要的菜單或工具欄按鈕在哪里,就可以

在右上角的搜索欄輸入我們要查找的菜單或工具欄或命令。就會列出來

 4):改變解決方案正在使用的框架版本方法。

方法一:右擊項目 並選擇該解決方案的-"屬性"-”目標框架“ 修改自己所要框架版本。

 

 

 方法二:在創建項目的時候選擇自己所要的目標框架。

 注意:在.Net Core中 js庫不再Nuget服務器中使用,用NPM,Bower等。

5)使用代碼片段

如:在控制台要輸入Console.WriteLine()可以直接輸入cw+按兩次Tab鍵

微軟自帶的代碼片段有 

1:快捷鍵:do、for、forr、foreach和while

2:使用equals來實現Equals方案

3:使用attribute和exception來創建Attribute和Exception派生類。

選擇工具(Tools)|代碼片段管理器(Code Snippets Manager)就可以查看所有可用的代碼片段。也可以創建自定義代碼片段--可以拷貝一份然后仿造格式 寫入自己的代碼就可以了。放在同一個位置。

可以使用XAML的代碼片段:代碼片段可以在:https://archive.codeplex.com/獲取。

 調試:

可執行代碼一般不包含這些名稱--編譯器有哦那個內存地址代替了變量名稱。

編譯器在編譯發布代碼時自動忽略可以用預處理指令,在結合使用Conditional特性(條件編譯)。就可以實現。

VS會自動提供兩種配置:調試(debug)和發布(release)。

調試:這種配置通常指定編譯器不優化編譯過程,可執行文件應該包含額外的調試信息。

編譯器假定調試預處理器指令Debug是存在的,除非源代碼中顯式使用了#undefined Debug指令。

發布:這種配置指定編譯器應優化編譯過程,可執行文件不應包含額外的調試信息,編譯器不應假定源代碼包含特定的預處理器符號。

當然 還可以自定義配置,但是我們很少用。

 四:調試代碼

通常我們比較常用的就是設置斷點。

在循環中我們也可以設置循環中斷,有些我們可能就是一個個循環這樣很麻煩。

但是我們可以設置 一定的條件當條件成立的時候 循環才會命中到斷點。

4.1:監視和修改變量

需要連續查看變量的值。可以使用Autos、Locals和Watch窗口檢查變量的內容。

Autos(自動窗口)--監視在程序執行過程中離斷點最近的幾個變量。

Locals(局部變量)--監視在程序執行過程中當前斷點所子啊方法內可訪問的變量。

Watch(監視)--監視在程序執行過程中顯示指定名稱的任何變量。可以把變量拖放到Watch窗口中。

這些只有進入 調試模式 這些窗口才是可見的。

 

 目前有4個不同的窗口 除了上面三個 還有一個就是及時(Immediate)窗口,及時窗口可以輸入並運行代碼。

這些4個窗口都可以查看和修改變量的值,所以不必離開調試器就可以嘗試改變程序的不同路徑。

5:調試異常

我們在發生異常的時候代碼已經離開拋出了異常的方法。所以我們只能看異常的信息,來知道那邊出錯了,但是存在很多throw語句,我們應該如何調試判斷拋出異常的是那條。

菜單欄-》調試-》窗口-》異常設置,可以配置調試器中斷處的異常類型。

該窗口中可以指定拋出異常后執行什么操作。例如,可以選擇繼續執行,或者停止執行並啟動調試--此時程序將停止執行,調試器將在throw語句位置啟動。

 

 這個對話框的好處在於運行根據拋出異常的類型選擇相應的操作。例如,可以配置為在遇到.Net基類拋出的任何異常時進入調試器。但對於其他異常類型則不進入調試器。

也可以添加自己自定義的異常。點擊對話框的”+“號進行添加。

6:多線程

在調試多線程時,必須 理解在調試器中運行與不再調試器中運行時,程序的行為會發生變化。

遇到斷點時,Visual Studio會停止程序的所有線程,所以此時有機會查看所有線程的當前狀態。

可以在調試-》窗口-》線程 查看線程的情況,包括 任務的狀態、位置、任務名、任務使用的當前線程、所在的應用程序域以及進程標識符。

 

 

 在線程的顯示欄默認只顯示幾列,但是可以將我們要顯示的列展示出來。

 

 七:重構工具

vs重構工具提供一下功能

1:重命名方法、局部變量、字段

2:從選定代碼中提取方法

3:基於一組已有的類型成員提取接口

4:將局部變量提升為參數

5:重命名參數或修改參數的順序

8:診斷工具

 

應用程序時間線(Application Timeline) :提供UI線程的信息,以及解析、布局、渲染、I/O和應用代碼所花的時間。根據所花的最多時間,可以確定優化在哪里是有用的。

內存使用率:收集.Net內存分配信息有助於找出內存泄漏的地方,以及哪種類型的對象需要多少內存。資源爭用數據對分析線程有幫助,能夠很容易地看出不同的線程是否會彼此阻塞。

CPU使用率,說明哪些函數占用最長時間的熱路徑(hot path),以及使用最多CPU時間的函數的排列列表。從這些函數只能用的時間,有助於確定哪些方法的性能值得關注。

在函數內單機,就會顯示該函數的詳細信息。

 

 9:Concurrency Visualizer

Concurrency Visualizer 用於分析應用程序的線程問題。

vs2015 可以通過工具-》擴展和更新 下載並安裝Concurrency  Visualizer 

在該屏幕中,可以比較應用程序需要的cpu資源與系統的整體性能。還可以切換到Threads視圖,查看正在運行的應用程序線程及其在各個時間段所處狀態的信息。切換到Cores視圖會顯示使用了多少CPU核心信息。

如果應用程序只使用了一個cpu核心,並且一直處於繁忙狀態,那么通過添加一些並行功能,使用更多的cpu核心,可能會改進性能。

在不同的時間,可能看到不同的線程處於活動狀態,但是在給定的時間點,只能有一個線程處於活動狀態。這種情況中,可能需要修改鎖定行為。還可以查看線程是否使用了I/O。如果多個線程的I/O使用率都很高,那么磁盤可能是瓶頸,導致線程都在等待彼此完成I/O

此時可能需要減少執行I/O的線程數,或者使用一個ssd磁盤。

10:Code Metrics

Code Metrics:代碼度量。可以知道代碼的可維護程度。

VS自帶的代碼度量會顯示出嗲嗎的可維護度指數,以及包含每個類和方法的細節。

紅色(0-9):表示可維護程度低。

黃色(10-19):表示可維護程度中等:

綠色(20-100):表示可維護程度高。

Ctclomatic Complexity列提供了不同的代碼路徑的反饋。更多改嗎路徑意味着需要對每個選項進行更多的單元測試。

Depth of Inheritance 列:反應了類型的層次。基類數越多,就越難找出某個字段屬於哪個基類。

Class Coupling 列:表明了類型的耦合程度。例如用於參數或局部變量。 耦合程度越高,意味着越難維護代碼。

 

Server Explorer窗口:

在該窗口的Servers部分中,可以找到服務運行的情況的信息,創建新的性能計數,訪問事件日志。

 

 

 調試器符號:

在調試過程中,經常需要查看變量的值,這時使用的是它們在源代碼中的名稱。

問題是可執行代碼一般不包含這些名稱--編譯器用內存地址代替了這些變量名稱。

.Net在一定程度上改變了這種情況,使程序集中的某些項以名稱的形式存儲。但是這只適用於

少量的項(例如公有類和方法),而且這些名稱在JIT編譯器程序集后也仍然會被移除。

如果讓調試器先釋變量Height的值,但是編譯器在查看可執行代碼時只看到了地址,

而沒有看到任何對名稱Height的引用,自然就得不到期望的結果。

為了正確地調試,需要在可執行文件中提供一些額外的調試信息。這些信息包含變量名和代碼行信息,允許調試器確定可執行機器匯編語言與源代碼中的哪些指令對應。但是不應在發布版本中包含這些信息。調試信息會增加可以執行文件大小。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM