C# 知识点总结
Posted haigui-zx
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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字符串编码和解码
以上是关于C# 知识点总结的主要内容,如果未能解决你的问题,请参考以下文章