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

来源:https://www.cnblogs.com/s0611163/archive/2023/02/03/17090611.html
-Advertisement-
Play Games

前言 本文寫給想學C#的朋友,目的是以儘快的速度入門 C#好學嗎? 對於這個問題,我以前的回答是:好學!但仔細想想,不是這麼回事,對於新手來說,C#沒有那麼好學。 反而學Java還要容易一些,學Java Web就行了,就是SpringBoot那一套。 但是C#方向比較多,你是學控制台程式、WebAP ...


前言

本文寫給想學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包管理器的"已安裝"選項卡查看已安裝的庫,也可以工程文件中看到安裝的庫
這裡依賴庫、依賴庫的依賴庫,是沒有列出來的,非常清爽


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 基於php大文件分片上傳至七牛雲,使用的是七牛雲js-sdk V2版本,引入js文件,配置簡單,可以暫停,暫停後支持斷點續傳(刷新、關閉頁面、重新上傳、網路中斷等情況),可以配置分片大小和分片數量,官方文檔https://developer.qiniu.com/kodo/6889/javascrip ...
  • 基於php+webuploader的大文件分片上傳,帶進度條,支持斷點續傳(刷新、關閉頁面、重新上傳、網路中斷等情況)。文件上傳前先檢測該文件是否已上傳,如果已上傳提示“文件已存在”,如果未上傳則直接上傳。視頻上傳時會根據設定的參數(分片大小、分片數量)進行上傳,上傳過程中會在目標文件夾中生成一個臨 ...
  • 背景 我們的業務共使用11台(阿裡雲)伺服器,使用SpringcloudAlibaba構建微服務集群,共計60個微服務,全部註冊在同一個Nacos集群 流量轉發路徑: nginx->spring-gateway->業務微服務 使用的版本如下: spring-boot.version:2.2.5.RE ...
  • 摘要:在jvm中有很多的參數可以進行設置,這樣可以讓jvm在各種環境中都能夠高效的運行。絕大部分的參數保持預設即可。 本文分享自華為雲社區《為什麼需要對jvm進行優化,jvm運行參數之標準參數》,作者:共飲一杯無。 我們為什麼要對jvm做優化? 在本地開發環境中我們很少會遇到需要對jvm進行優化的需 ...
  • 1 簡介 我們之前使用了dapr的本地托管模式,但在生產中我們一般使用Kubernetes托管,本文介紹如何在GKE(GCP Kubernetes)安裝dapr。 相關文章: dapr本地托管的服務調用體驗與Java SDK的Spring Boot整合 dapr入門與本地托管模式嘗試 2 安裝GKE ...
  • 前段時間因業務需要完成了一個工作流組件的編碼工作。藉著這個機會跟大家分享一下整個創作過程,希望大家喜歡,組件暫且命名為"easyFlowable"。 接下來的文章我將從什麼是工作流、為什麼要自研這個工作流組件、架構設計三個維度跟大家來做個整體介紹。 ...
  • 本文介紹基於Python語言中TensorFlow的Keras介面,實現深度神經網路回歸的方法。 1 寫在前面 前期一篇文章Python TensorFlow深度學習回歸代碼:DNNRegressor詳細介紹了基於TensorFlow tf.estimator介面的深度學習網路;而在TensorFl ...
  • 某一日晚上上線,測試同學在回歸項目黃金流程時,有一個工單項目介面報JSF序列化錯誤,馬上升級對應的client包版本,編譯部署後錯誤消失。 線上問題是解決了,但是作為程式員要瞭解問題發生的原因和本質。但這都是為什麼呢? ...
一周排行
    -Advertisement-
    Play Games
  • Dapr Outbox 是1.12中的功能。 本文只介紹Dapr Outbox 執行流程,Dapr Outbox基本用法請閱讀官方文檔 。本文中appID=order-processor,topic=orders 本文前提知識:熟悉Dapr狀態管理、Dapr發佈訂閱和Outbox 模式。 Outbo ...
  • 引言 在前幾章我們深度講解了單元測試和集成測試的基礎知識,這一章我們來講解一下代碼覆蓋率,代碼覆蓋率是單元測試運行的度量值,覆蓋率通常以百分比表示,用於衡量代碼被測試覆蓋的程度,幫助開發人員評估測試用例的質量和代碼的健壯性。常見的覆蓋率包括語句覆蓋率(Line Coverage)、分支覆蓋率(Bra ...
  • 前言 本文介紹瞭如何使用S7.NET庫實現對西門子PLC DB塊數據的讀寫,記錄了使用電腦模擬,模擬PLC,自至完成測試的詳細流程,並重點介紹了在這個過程中的易錯點,供參考。 用到的軟體: 1.Windows環境下鏈路層網路訪問的行業標準工具(WinPcap_4_1_3.exe)下載鏈接:http ...
  • 從依賴倒置原則(Dependency Inversion Principle, DIP)到控制反轉(Inversion of Control, IoC)再到依賴註入(Dependency Injection, DI)的演進過程,我們可以理解為一種逐步抽象和解耦的設計思想。這種思想在C#等面向對象的編 ...
  • 關於Python中的私有屬性和私有方法 Python對於類的成員沒有嚴格的訪問控制限制,這與其他面相對對象語言有區別。關於私有屬性和私有方法,有如下要點: 1、通常我們約定,兩個下劃線開頭的屬性是私有的(private)。其他為公共的(public); 2、類內部可以訪問私有屬性(方法); 3、類外 ...
  • C++ 訪問說明符 訪問說明符是 C++ 中控制類成員(屬性和方法)可訪問性的關鍵字。它們用於封裝類數據並保護其免受意外修改或濫用。 三種訪問說明符: public:允許從類外部的任何地方訪問成員。 private:僅允許在類內部訪問成員。 protected:允許在類內部及其派生類中訪問成員。 示 ...
  • 寫這個隨筆說一下C++的static_cast和dynamic_cast用在子類與父類的指針轉換時的一些事宜。首先,【static_cast,dynamic_cast】【父類指針,子類指針】,兩兩一組,共有4種組合:用 static_cast 父類轉子類、用 static_cast 子類轉父類、使用 ...
  • /******************************************************************************************************** * * * 設計雙向鏈表的介面 * * * * Copyright (c) 2023-2 ...
  • 相信接觸過spring做開發的小伙伴們一定使用過@ComponentScan註解 @ComponentScan("com.wangm.lifecycle") public class AppConfig { } @ComponentScan指定basePackage,將包下的類按照一定規則註冊成Be ...
  • 操作系統 :CentOS 7.6_x64 opensips版本: 2.4.9 python版本:2.7.5 python作為腳本語言,使用起來很方便,查了下opensips的文檔,支持使用python腳本寫邏輯代碼。今天整理下CentOS7環境下opensips2.4.9的python模塊筆記及使用 ...