C#零基礎小白快速入門指導

0611163發表於2023-02-03

前言

本文寫給想學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,很新了。

如果你有更好的書,也可以。

書怎麼看?

  1. 前兩章瞭解,學完知道怎麼編寫控制檯程式,也就是怎麼寫Hello World。
  2. 後面幾章是重點,講語法,包括變數、表示式、資料型別、流程控制、函式、物件導向、類、集合、泛型。
  3. 後面是高階內容,可以先不學,也可以選學、有空再學,或者用到了再學。
  4. 簡單學習一下Winform,會使用VS2022建立Winform程式,會拖控制元件。最簡單的,雙擊控制元件就可以編寫程式碼了。拖控制元件幹什麼?學會拖控制元件,你就可以發揮自己的想象力了,寫個計算器、寫個小工具等,我上學那會寫過屏保(用VB寫的,跟C#是一樣的,書上可沒有這個,就是發揮想象力,你想到個點子,自然就知道去研究怎麼寫),寫過時鐘程式,寫過定時自動關機等。

然後

恭喜你!你已經入門了!這意味著什麼,只要有公司要你,你就可以幹活了!
可是、可是,公司做Web專案,我ASP.NET還沒學啊?你只要會照葫蘆畫瓢,你就能幹活了!
當你幹了兩天活之後,對於ASP.NET的學習,你是買書,還是看影片,隨你便。
我以前就是這樣入門的,那是十幾年前了,現在太捲了。參與專案,才會學的更快。

如果你知道微軟的文件怎麼看,那更好

例如:

  1. 《C# 程式設計指南》 講C#語法的,還不錯
  2. 《.NET 文件》 講實在的,對於新手來說,真沒法看了,範圍有點大,所以我說你知道怎麼看最好,不知道以後再說。點選《使用 ASP.NET Core 建立 Web 應用》可以跳轉到更具體的《ASP.NET 文件》
  3. 《ASP.NET 文件》 這個範圍稍微小一點,主要講Web API、ASP.NET Core MVC、Blazor等
  4. 《使用 ASP.NET Core 建立最小 Web API》 《使用 ASP.NET Core 控制器建立 Web API》 這個範圍再具體一點,看完就可以寫Web API了,這個有用

入門的關鍵點

  1. 學會基本的語法。(不會Lambda表示式不影響寫C#程式碼,要學的話,先記住一種固定寫法,幾分鐘就能學會)(例如我至今不太清楚"協變"與"逆變",但不影響我寫程式碼,報錯了,就說明這樣寫不行唄)
  2. 學會使用VS2022建立控制檯應用程式和Winform應用程式。學會拖控制元件、設定控制元件屬性和事件、除錯。對於VS2022的使用,自己探索,反正都是漢化版的,多點點就行。
  3. 嘗試寫點小工具,最好能參與到專案中,不會就百度,百度時,搜尋關鍵詞一般是“C# XXX”、“Winform XXX”、“.NET XXX”、“.NET6 XXX”、“.NET Core XXX”。
  4. 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包管理器的"已安裝"選項卡檢視已安裝的庫,也可以工程檔案中看到安裝的庫
這裡依賴庫、依賴庫的依賴庫,是沒有列出來的,非常清爽

相關文章