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