前面鋪了這麼多,終於來到我當時真實的筆記整理!
第一次打開 Visual Studio 時,我最大的問題不是程式碼看不懂。
而是:
這些按鈕到底都在幹嘛?
上面一整排選單和圖示,下面又有各種視窗。
每個看起來都很重要,但新手真的不可能一開始全部學會。
所以我先問 AI:
Visual Studio 裡有哪些功能,是剛進入 C# MVC 專案的新手最常用到的?
它一開始列了超級長的一串。
於是我又追問:
不要全部,我現在只想先知道「找檔案、啟動專案、找錯誤和追程式」會用到的功能。
最後我才慢慢整理成這份菜鳥生存筆記。
| 功能 | 快捷鍵 |
|---|---|
| 儲存目前檔案 | Ctrl + S |
| 全部儲存 | Ctrl + Shift + S |
| 搜尋目前檔案 | Ctrl + F |
| 搜尋整個方案 | Ctrl + Shift + F |
| 建置方案 | Ctrl + Shift + B |
| 跳到定義 | F12 |
| 尋找所有參考 | Shift + F12 |
| 啟動或繼續 Debug | F5 |
| 執行下一行,不進入方法 | F10 |
| 進入方法內部 | F11 |
| 註解選取內容 | Ctrl + K, Ctrl + C |
| 取消註解 | Ctrl + K, Ctrl + U |
| 格式化整份文件 | Ctrl + K, Ctrl + D |
還是有一些地方和 VS Code 不太一樣 Q
不過快捷鍵不用一開始全部背起來。
我目前最常用到的其實是:
Ctrl + S
Ctrl + F
Ctrl + Shift + F
F12
F5
F10
F11
其他的先知道有這個功能,用到時再回來查就好。
不然一次背完,隔天大概還是全部還給它 XD


Debug 是偵錯模式。
程式會保留較完整的偵錯資訊,讓我們可以:
目前我平常開發和找問題時,主要都是使用 Debug。
菜鳥版理解就是:
我要一邊執行程式,一邊偷看它裡面到底發生什麼事情,就先用 Debug。
Release 比較常用在正式發佈程式時。
它通常會針對執行效能進行最佳化,不會像 Debug 模式一樣,保留那麼完整的偵錯資訊。
我目前還不會處理正式部署,所以現階段先知道:
平常開發和除錯用 Debug,正式發佈時才比較可能用到 Release。
不是完全不能在 Release 模式下除錯,只是對目前的新手階段來說,Debug 會比較適合追程式。
Any CPU 表示這個專案不是只限定在特定的 32 位元或 64 位元環境執行。
但實際執行方式還可能受到專案設定、作業系統和相依套件影響。
這個我目前還沒有深入研究。
菜鳥階段的原則是:
公司專案原本選什麼,就先不要因為好奇亂改。

左側的下拉選單,可以選擇目前要使用的啟動設定或啟動專案。
按下旁邊的綠色播放鍵後,Visual Studio 會先嘗試建置專案,再啟動目前選擇的項目。
這跟我以前在 VS Code 裡開啟 Terminal,執行:
npm run dev
有點類似。
都是要把網站跑起來,只是操作方式不同。
我一開始只知道按綠色播放鍵,卻不知道為什麼有時候跑出來的不是我要的網站。
後來才發現:
一個 Solution 裡面可能會有很多個 Project。
所以啟動前要先確認:
如果選錯專案,按鈕本身沒有壞。
它只是很認真地幫我啟動了錯的東西 Q

程式正在執行時,如果修改部分程式碼或畫面,Visual Studio 會嘗試在不停止程式的情況下套用變更。
菜鳥版理解就是:
改完之後,不一定每次都要把整個專案關掉再重開。
例如修改部分 HTML、CSS 或畫面內容後,有時候重新整理瀏覽器就能看到變化。
不過不是每一種修改都能直接套用。
如果畫面沒有變化,我現在會依序嘗試:
先儲存檔案
↓
重新整理瀏覽器
↓
確認修改的是不是正確檔案
↓
重新建置
↓
停止並重新啟動專案
這段其實很重要。
因為新手很容易一看到畫面沒變,就立刻懷疑:
我的程式是不是寫錯了?
但有時候不是程式邏輯錯誤,而是變更還沒有成功套用。

Browser Link 可以讓 Visual Studio 和目前開啟的瀏覽器頁面建立連結,並查看有哪些瀏覽器頁面正在連接這個專案。
老實說,這個功能我目前實際使用得比較少。
而且不同版本、不同專案類型或設定下,不一定都會使用 Browser Link。
所以我目前先記得它的用途就好:
它和 Visual Studio、瀏覽器之間的連線有關,但不是我現階段最需要先學會的功能。
這裡我也開始學會一件事:
工具列上看得到的功能,不代表現在全部都要會。

書籤功能包含:
它可以在程式碼裡先做記號,之後再快速跳回那幾行。
例如我正在追一段很長的程式流程時,可能會先在這些地方放書籤:
Controller 接到請求的位置
↓
Service 處理資料的位置
↓
回傳結果的位置
這樣就不用一直上下捲動,或重新搜尋剛才看到的程式碼。
不過以我目前的使用頻率來說,我還是比較常用:
Ctrl + F
Ctrl + Shift + F
F12
Shift + F12
書籤算是知道有這個工具,需要時再拿來用。

方案總管是放這些東西的地方:
以前使用 VS Code 時,我會從左邊的檔案總管找檔案。
到了 Visual Studio,就是從方案總管裡面查看整個 Solution 和 Project 的結構。
但企業專案的檔案數量很多。
一開始我還會傻傻地把資料夾一層一層打開,努力用眼睛找檔案。
後來才發現:
方案總管是拿來理解結構的,但不一定要每次都靠它慢慢翻檔案。
當我已經知道檔名、畫面文字或方法名稱時,直接搜尋通常會比較快。
| 功能 | 快捷鍵 | 用途 |
|---|---|---|
| 搜尋目前檔案 | Ctrl + F |
在目前開啟的檔案裡找文字 |
| 搜尋整個方案 | Ctrl + Shift + F |
在整個 Solution 的檔案裡找文字 |
| 跳到定義 | F12 |
查看方法、類別或變數在哪裡定義 |
| 尋找所有參考 | Shift + F12 |
查看某個方法或類別在哪些地方被使用 |
以前練習用的專案比較小,檔案數量不多,還可以慢慢點資料夾找。
進到企業專案後,檔案一多,真的不可能每次都只靠眼睛慢慢翻。
所以當我看到畫面上出現一段文字、方法名稱或 API 名稱時,通常會先直接搜尋。
例如畫面上有一個按鈕叫做:
儲存資料
我可能會先用:
Ctrl + Shift + F
搜尋「儲存資料」。
如果找得到這段文字,就有機會先定位到對應的 .cshtml 或 JavaScript。
找到檔案後,再繼續查看:
id 或 class
asp-action
流程可能會變成:
從畫面看到文字
↓
搜尋整個方案
↓
找到對應的 .cshtml
↓
查看按鈕或表單設定
↓
繼續追 Controller、JavaScript 或 API
這是我後來真的很常使用的找程式方式。
因為我一開始根本不知道檔案放在哪裡。
但我通常知道:
畫面上現在出現了什麼文字。
所以文字搜尋,就成為我進入陌生專案的第一個入口。
這次 AI 主要幫我把 Visual Studio 裡大量的功能,先按照用途分類。
但它一開始給我的答案太多了。
所以我後來把問題縮小成:
我現在想從畫面找到程式碼,應該先學哪幾個功能?
這時候答案才開始聚焦到:
不過我也沒有因為 AI 列出快捷鍵,就認為自己已經會使用。
真正讓我理解的,是回到專案實際做一次:
看到畫面文字
↓
用 Ctrl + Shift + F 搜尋
↓
找到對應檔案
↓
用 F12 繼續追方法
↓
執行專案確認找對位置
AI 可以告訴我有哪些工具。
但哪個工具在什麼情況下真的有用,還是要回到專案裡操作才會知道。
Visual Studio 的功能很多,但新手不用一次全部學會。
我目前先把它們分成四類:
| 目的 | 先使用的工具 |
|---|---|
| 找檔案 | 方案總管、Ctrl + Shift + F |
| 追程式 | F12、Shift + F12 |
| 啟動專案 | 綠色播放鍵、F5 |
| 找問題 | Debug、中斷點、錯誤清單、輸出 |
真正的重點不是把所有快捷鍵背起來。
而是遇到問題時,知道自己現在需要的是:
找檔案、追程式、啟動專案,還是查看錯誤?
其他按鈕,先不要亂按 XD
下一篇:
前輩叫我打開
.sln,但.sln到底是什麼?