C# Winform开发学习笔记

写在前面

// 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 概述

.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

参见.NET Framework 版本和依赖关系

<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)
  • 图算法
    • 最短路径
    • 拓扑排序

其他算法:

  • 字符串匹配
  • 最小生成树
  • 动态规划
  • 网络流
  • 计算几何
  • 矩阵
  • 数论
  • 随机化
  • ……
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,132评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,802评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,566评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,858评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,867评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,695评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,064评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,705评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,915评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,677评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,796评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,432评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,041评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,992评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,223评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,185评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,535评论 2 343

推荐阅读更多精彩内容