前言
本文寫給想學C#的朋友,目的是以儘快的速度入門
C#好學嗎?
對於這個問題,我以前的回答是:好學!但仔細想想,不是這麼回事,對於新手來說,C#沒有那麼好學。
反而學Java還要容易一些,學Java Web就行了,就是SpringBoot那一套。
但是C#方向比較多,你是學控制檯程式、WebAPI、ASP.NET、Winform還是WPF?如果再區分一下.NET Framework和.NET Core,應用程式型別就更多了。
我建議可以透過控制檯程式和Winform入門,這樣才簡單。
控制檯程式可用於寫Hello World,以及學習語法的時候寫一些小Demo。使用Winform,就可以寫一些小應用了,比如計算器、時鐘,以及你能想到的小工具,都可以用C#寫。
比如計算器程式,可以寫的很簡單,也可以寫的很複雜,這是我2012年寫的:Calculator
萬事開頭難,簡單入門之後,C#的簡單易學才真正體現出來。
C#怎麼學?
不建議看影片學習,除非你確實找到了不錯的入門影片,原因:
1、C#優秀入門影片不多。
2、看影片學習速度慢。只學語法沒有用,看不到學習成果,學完就扔了。所以為了快速學完語法,再學實用的內容,最好看書。
這裡推薦一本從噹噹網搜尋到的書,《C#入門經典》第9版,書的內容更新至C#9和.NET5,很新了。
如果你有更好的書,也可以。
書怎麼看?
- 前兩章瞭解,學完知道怎麼編寫控制檯程式,也就是怎麼寫Hello World。
- 後面幾章是重點,講語法,包括變數、表示式、資料型別、流程控制、函式、物件導向、類、集合、泛型。
- 後面是高階內容,可以先不學,也可以選學、有空再學,或者用到了再學。
- 簡單學習一下Winform,會使用VS2022建立Winform程式,會拖控制元件。最簡單的,雙擊控制元件就可以編寫程式碼了。拖控制元件幹什麼?學會拖控制元件,你就可以發揮自己的想象力了,寫個計算器、寫個小工具等,我上學那會寫過屏保(用VB寫的,跟C#是一樣的,書上可沒有這個,就是發揮想象力,你想到個點子,自然就知道去研究怎麼寫),寫過時鐘程式,寫過定時自動關機等。
然後
恭喜你!你已經入門了!這意味著什麼,只要有公司要你,你就可以幹活了!
可是、可是,公司做Web專案,我ASP.NET還沒學啊?你只要會照葫蘆畫瓢,你就能幹活了!
當你幹了兩天活之後,對於ASP.NET的學習,你是買書,還是看影片,隨你便。
我以前就是這樣入門的,那是十幾年前了,現在太捲了。參與專案,才會學的更快。
如果你知道微軟的文件怎麼看,那更好
例如:
- 《C# 程式設計指南》 講C#語法的,還不錯
- 《.NET 文件》 講實在的,對於新手來說,真沒法看了,範圍有點大,所以我說你知道怎麼看最好,不知道以後再說。點選《使用 ASP.NET Core 建立 Web 應用》可以跳轉到更具體的《ASP.NET 文件》
- 《ASP.NET 文件》 這個範圍稍微小一點,主要講Web API、ASP.NET Core MVC、Blazor等
- 《使用 ASP.NET Core 建立最小 Web API》 《使用 ASP.NET Core 控制器建立 Web API》 這個範圍再具體一點,看完就可以寫Web API了,這個有用
入門的關鍵點
- 學會基本的語法。(不會Lambda表示式不影響寫C#程式碼,要學的話,先記住一種固定寫法,幾分鐘就能學會)(例如我至今不太清楚"協變"與"逆變",但不影響我寫程式碼,報錯了,就說明這樣寫不行唄)
- 學會使用VS2022建立控制檯應用程式和Winform應用程式。學會拖控制元件、設定控制元件屬性和事件、除錯。對於VS2022的使用,自己探索,反正都是漢化版的,多點點就行。
- 嘗試寫點小工具,最好能參與到專案中,不會就百度,百度時,搜尋關鍵詞一般是“C# XXX”、“Winform XXX”、“.NET XXX”、“.NET6 XXX”、“.NET Core XXX”。
- ASP.NET Core MVC是有點複雜,學習需要點時間。ASP.NET Core Web API就可以很簡單,可以先學這個。
.NET Framework 和 .NET Core
新手可以直接學習.NET Core,別管.NET Framework了
.NET官方自帶的庫
學完了語法,學會了如何建立控制檯程式、Winform程式、Web API程式、ASP.NET Core Web程式,下一步就是實際工作了,最重要的就是學會各種庫的使用。
當你建立一個工程,VS2022會幫你自動引入自帶的庫,主要是System開頭,有的是Microsoft開頭,文件:.NET API 瀏覽器,這個文件我沒有正經看過,我都忘了自己是怎麼學會的了,在工作中學的吧,我也只會其中比較常用的部分。
NuGet
NuGet 是免費、開源的包管理開發工具。https://www.nuget.org/
光有官方自帶的庫,是不夠的,這就需要第三方開源庫。NuGet是非常人性化的。
以Dapper這個ORM庫為例:
1. 庫的下載量、最近更新時間、最新版本號
搜尋我們要安裝的庫,我們可以看到一些關鍵資訊:下載量、最近更新時間、最新版本號,下載量大的庫,一般都是主流的庫,如果你看到一個庫,下載量很小,那你要謹慎一點。
2. 庫的當前版本支援的框架
可以看到這個庫是在.NET 5.0、.NET Standard 2.0和.NET Framework 4.6.1框架下編譯的(深色),可以看到支援(相容)哪些框架及版本(淺色)
3. 庫的依賴庫
VS2022會自動管理依賴庫以及它們的衝突,一般不需要手動處理。當然遇到衝突且無法自動解決的情況下,也有配置方法。
4. 每個版本的下載量、釋出日期
這個很重要,很多年沒有更新的庫,你要謹慎一點。
5. 我的專案使用的是.NET Framework 4.5.2,這個庫裝不上怎麼辦?
點開1.60.6這個版本,這是net452框架能用的最新的版本了
6. 庫的安裝
選擇工程、選擇版本,點選安裝
7. 已安裝的庫
可以透過NuGet包管理器的"已安裝"選項卡檢視已安裝的庫,也可以工程檔案中看到安裝的庫
這裡依賴庫、依賴庫的依賴庫,是沒有列出來的,非常清爽