2023-3-29
1.byte和byte[]
- byte=8bit
- C#中 byte都是数值:byte a = 10;
- 根据不同的编码规则(Ascii、Base64、Unicode等)将字符串转为byte[]传输
- eg1: string--char[]--byte[]--传输--byte[]--char[]--string
- eg2: string--char[]--byte[]-base64--传输--base64-byte[]--char[]--string
参考资料 Byte和byte[]数组
2.Unicode
-
Unicode是字符集标准,就是说它已经包含全世界所有的字符,每个字符都有对应的位置,根据这个位置就能找到对应的字符,类似于地址
- utf-8、utf-16、utf-32之类以utf-8为例,8代表它最低为8bit,即1byte;所以说它包含着Ascii编码,对于汉字他就是两位,即2byte,以此类推;但他们的目的就是根据对应的规则(类似送快递的,每个快递员都有自己找房间的办法,有人先从小区门口找起,有人先骑到小区里面找起,实际结果都一样,都是为了找到对应的房间,把货送到地址)找到Unicode字符集标识的字符
参考资料 Unicode、UTF-8、UTF-16 终于懂了
3.Lambda和Linq的关系
- 两者关系并不密切,linq的本来是通过from。。in。。where。。这种语句来查询表或者集合的,但是到了C#中因为做了处理,将这些常见的语句封装成一个个方法,例如Where()、Select()等等;这些方法很多都是拓展方法,然后里面还有一个Func委托,将委托写成Lambda格式就出现了Lambda和Linq的混合。
- 要实现Linq的集合首先得实现IEnumerable接口,即迭代器。
- Linq都是延迟执行,只有到了运行的时候才会去加载
参考资料 Linq 和 lambda 的区别是什么? LINQ中的延迟执行
4.集合线程安全
5.
6.