C# 知識點總結


 

代碼原則

1.職責單一原則,封閉開發原則

2.枚舉類型最好不要用 數字表示

3.代碼要可配置,可擴展


初級
1.抽象類,接口的區別
抽象類需要被繼承,不能實例化,子類必須實現其抽象方法,抽象方法沒有方法體,是為了子類不要忘記寫某個方法而出現的
接口看成是抽象類的補充(子類實現基類中的所有方法,還可以選擇性的實現某些功能)
override :抽象方法,子類要必須重寫。虛方法,子類可以不必重寫虛方法

2.序列化
序列化通俗的講就是將一個對象轉換成一個字節流的過程,這樣就可以輕松的保存在磁盤文件或數據庫中。反序列化就是序列化的逆過程,就是將一個字節流換回原來
的對象的過程。

總結:
a,如果是json格式,NewtonSoft.Json最通用(可以處理循環引用),雖然它不是速度最快的。

b,如果是xml格式,就使用.net自帶的XmlSerializer。將對象序列化成XML文件

c,如果是二進制格式,就使用.net自帶的BinaryFormatter,雖然Protobuf速度很快,但是要加序號很麻煩。

3.XML操作

4.委托和事件的關系
委托是一種類型(可以看出是方法的模板),事件可以看成是委托的一種特殊的實例化;
事件只能在其定義類的內部調用,在外部提供接口供用戶綁定方法。而委托可以在外部被實例化,調用。這就是事件與委托對象的唯一區別
委托主要是用來解耦(程序開發要秉承着可擴展思想),無委托無異步。

5.文件操作(Excel)

6.泛型

7. 事務

存儲過程和代碼中都可以使用事務,要么全部執行成功,要么全都回滾

 8. 數據庫的操作

ADO.Net 要求會手寫

9.Lambla 表達式和linq 表達式

中級

MVC,EF

SQL防注入

反射

多線程(並發),死鎖

定時任務(window 提供的定時任務,數據庫job,代碼控制,適用於定時job ||  實時job用服務)

上傳圖片(web api上傳圖片和web form 上傳圖片)

web api身份鑒權-token (JWT)

登錄成功后,后台給前端返回一個token值,前端請求接口時候必須要在 頭部參數中加這個token值

每次后台收到請求,webapi 的過濾器就過濾一下請求是否合法

登錄防止篡改。

http://www.itboth.com/d/V322aq/md5-c

服務

 

 

設計模式

 工廠模式

IOC(unity,autoFac,推薦使用autoFac)

依賴注入和控制反轉其實是一個概念,應用場景是在領域模型(DDD)中使用較多

設計模式,了解

三層架構--適合小型項目

縮減版的DDD模式--現在主流的設計模式

ORM框架

1.EF 框架:

  數據庫先行--比較適合很小的項目

      代碼先行--主流使用,建議不要使用EF提供的命令,容易造成數據庫數據的丟失

     不能使用vs自帶的遷移工具原因:https://www.cnblogs.com/ants/p/4037312.html

常用的性能優化功能

緩存,(使用內存,或者Redis緩存、MongoDB數據庫,推薦學習redis

ps: redis或者 mongodb 適用於簡單的sql場景,mongodb查詢功能更加強大些

應用場景:高並發

索引---重點

數據庫磁盤分區

 

幫助類/包
log --日志類(復雜的日志記載,推薦使用 log.net)
JSON.NET --實現json的序列化和反序列化,推薦使用NewtonSoft
System.Web.HttpUtility --用於提供URL字符串編碼和解碼

swagger 包--webapi 說明文檔


免責聲明!

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



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