寫在前面
// HelloWorld.cs
public class HelloWorld
{
public static void Main()
{
System.Console.WriteLine("學習一門程序設計語言最有效的途徑是不斷實踐");
}
}
.NET Framework + C#的優勢在于:
- 快速開發
- Windows窗體應用程序
- 避免復雜的內存管理
- 實現免安裝綠色版
- 便捷調用Windows API
- 強大的IDE
- 豐富的擴展資源
- 輕量化數據庫
- Word/Excel操作
- XML、Json等文件處理
- 數學擴展庫
- ……
有用的鏈接
索引
- 學習C#
- .NET平臺
- C#語言
- 軟件設計
- 編程習慣
- 設計模式
- 程序員的數學
- 數據結構
- 算法
<h1 id='1'>學習C#</h1>
<h3 id='1.1'>.NET平臺</h3>
.NET Framework提供了
- 公共語言運行時(CLR)
- .NET Framework類庫
.Net Framework支持Visual Basic、C#、Visual J#、C++和JScript語言。
參見.NET Framework 中的語言和編譯器
版本兼容性
.NET Framework版本 | CLR 版本 | 包含于Visual Studio版本 | 默認兼容Windows版本 | 可安裝于Windows版本 |
---|---|---|---|---|
4.6 | 4 | 2015 | 10 | 8, 7 |
4.5 | 4 | 2013 | 10, 8 | 7 |
4 | 4 | 2010 | 10, 8, 7 | |
3.5 | 2.0 | 2008 | 10, 8, 7 | XP SP1 |
2.0 | 2.0 | 2005 | 10, 8, 7, XP |
<h3 id='1.2'>C#語言</h3>
語言基礎學習思路:
- 基本語法
- 語句
- 表達式
- 運算符
- 基本數據類型
- 數值類型
- 字符和字符串
- 數組和枚舉
- 類和接口(面向對象程序設計)
- 修飾符
- 類型
- 屬性
- 方法
進階技術:
- 異常處理
- 多線程編程
- 委托
- 事件
- Lambda表達式
- 線程處理
- 屬性
- 集合類
- 迭代器
- ……
其他:
- LINQ、SQL
- 正則表達式
參見C# 編程指南
<h1 id='2'>軟件設計</h1>
<h3 id='2.1'>編程習慣</h3>
良好的編程習慣有助于增強代碼的可讀性、可維護性。
80% of the lifetime cost of a piece of software goes to maintenance. Hardly any software is maintained for its whole life by the original author. Code conventions improve the readability of the software, allowing engineers to understand new code more quickly and thoroughly. If you ship your source code as a product, you need to make sure it is as well packaged and clean as any other product you create.
應注意的編程習慣包括:
- 文件命名
- 擴展名
- 文件名
- 源碼結構
- 文件說明(注釋)
- 引用
- 類和接口聲明
- 代碼縮進
- 代碼行長度
- 換行
- 縮進
- 注釋
- 塊注釋
- 整行注釋
- 尾注釋
- 行末注釋
- 文檔注釋
- 聲明
- 每行個數
- 初始化
- 位置
- 類和接口聲明
- 語句
- 簡單語句
- 復合語句
- Return語句
- if - else語句
- for語句
- while語句
- switch語句
- try - catch語句
- 空白
- 空行
- 空格
- 命名
- 類和接口名
- 方法名
- 常量名
- 變量名
- 編程慣例
- 靜態變量和實例變量的可訪問性
- 靜態變量和方法的調用
- 常量的使用
- 變量賦值
- 括號的使用
- 條件運算符的使用
- 特殊注釋
<h3 id='2.2'>設計模式</h3>
設計模式是開發人員在開發過程中面臨的一般問題的解決方案,這些解決方案是眾多軟件開發人員經過相當長的一段時間的試驗和錯誤總結出來的。
不管做何種軟件、用何種編程語言,在軟件開發上,一直不變的真理是:CHANGE。不管當初軟件設計得多好,一段時間之后,總是需要成長與改變,否則軟件就會“死亡”。
設計模式不會直接進入代碼中,而是進入開發人員的“大腦”中。
常用設計模式:
- 觀察者模式(Observer)
- 裝飾器模式(Decorator)
- 工廠模式(Factory)
- 單例模式(Singleton)
- 命令模式(Command)
- 適配器模式(Adapter)
- 外觀模式(Facade)
- 模板模式(Template)
- 迭代器模式(Iterator)
- 組合模式(Composite)
- 狀態模式(State)
- 代理模式(Proxy)
更多設計模式:
- 橋接模式(Bridge)
- 構造器模式(Builder)
- 責任鏈模式(Chain of Responsibility)
- 享元模式(Flyweight)
- 解釋器模式(Interpreter)
- 中介者模式(Mediator)
- 備忘錄模式(Memento)
- 原型模式(Prototype)
- 訪問者模式(Visitor)
- ……
<h1 id='3'>程序員的數學</h1>
<h3 id='3.1'>數據結構</h3>
常用數據結構:
- 數組
- 棧
- 隊列
- 樹
- 圖
其他數據結構:
- 堆
- 散列表
- ……
<h3 id='3.2'>算法</h3>
常用算法:
- 遞歸/遞推
- 排序算法
- 快速排序
- 樹算法
- 搜索(DFS、BFS)
- 最近公共祖先(LCA)
- 圖算法
- 最短路徑
- 拓撲排序
其他算法:
- 字符串匹配
- 最小生成樹
- 動態規劃
- 網絡流
- 計算幾何
- 矩陣
- 數論
- 隨機化
- ……