C# 知识点总结

代码原则

1.职责单一原则

2.枚举类型最好不要用 数字表示

初级
1.抽象类,接口的区别
抽象类需要被继承,不能实例化,子类必须实现其抽象方法,抽象方法没有方法体,是为了子类不要忘记写某个方法而出现的
接口看成是抽象类的补充(子类实现基类中的所有方法,还可以选择性的实现某些功能)
override :抽象方法,子类要必须重写。虚方法,子类可以不必重写虚方法

2.序列化
序列化通俗的讲就是将一个对象转换成一个字节流的过程,这样就可以轻松的保存在磁盘文件或数据库中。反序列化就是序列化的逆过程,就是将一个字节流换回原来
的对象的过程。
对于序列化的主要用途有:

1)、将应用程序的状态保存在一个磁盘文件或数据库中,并在应用程序下次运行时恢复状态。例如, Asp.net 中利用序列化和反2)、序列化来保存和恢复会话状态。
3)、一组对象可以轻松复制到Windows 窗体的剪贴板中,再粘贴回同一个或者另一个应用程序。
将对象按值从一个应用程序域中发送到另一个程序域
并且如果把对象序列化成内存中的字节流,就可以利用一些其他的技术来处理数据,例如,对数据进行加密和压缩等。

总结:
a,如果是json格式,NewtonSoft.Json最通用(可以处理循环引用),虽然它不是速度最快的。

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

c,如果是二进制格式,就使用.net自带的BinaryFormatter,虽然Protobuf速度很快,但是要加序号很麻烦。

3.XML操作

4.委托和事件的关系
委托是一种类型(可以看出是方法的模板),事件可以看成是委托的一种特殊的实例化;
事件只能在其定义类的内部调用,在外部提供接口供用户绑定方法。而委托可以在外部被实例化,调用。这就是事件与委托对象的唯一区别
委托主要是用来解耦(程序开发要秉承着可扩展思想),无委托无异步。

中级
1.文件操作 (Excel文件操作)
2.文件上传(web api 文件上传,asp.net 文件上传,WinForm文件上传)
3.登录防篡改身份验证
4.Web api 接口鉴权认证Token
5.激光推送
6.泛型
7.Linq,lambda表达式
8.MVC
9. web api
10.EF 的Code First和 DB First
11.反射应用

高级

 

帮助类
log –日志类
JSON.NET –实现json的序列化和反序列化,推荐使用NewtonSoft
NewtonSoft.Json –实现json的序列化,推荐
System.Web.HttpUtility –用于提供URL字符串编码和解码