DotNet知识点四

1、枚举:本质是类
如果为第一个枚举赋了一个int值,那么后面的枚举项依次递增
可以将枚举强转成他所代表的int值
C#的枚举项都是常量(可以用Reflector查看literal的IL源码)
因为枚举项都有对应的int值,所以Switch把他当成int看
不能定义方法、属性、事件
多个枚举有相同数值时,数值强转时,会返回其中最后一个枚举项
2、IEnumerable接口
  只要实现了该接口,就可以使用foreach进行遍历。foreach循环的本质就是调用这个接口返回一个迭代器,调用迭代器的MoveNext()方法就可以实现循环。

  源码:

复制代码
{
IEnumerator GetEnumerator(); //返回一个迭代器
}

public interface IEnumerator
{
bool MoveNext();
object Current { get; }
void Reset();
}
复制代码
  以上不难看出:

  IEnumerable接口中主要包括GetEnumerable方法(获取迭代器对象),MoveNext方法(检查是否存在循环的下一个元素),GetCurrent方法(获得当前循环到的元素)

3、集合
  基本概念
    集合就是能装一堆东西的容器。主要分为非泛型集合和泛型集合

    ArrayList——里面真正存储数据的是一个Object[]数组,它对应的泛型是List<T>

    HashTable——非泛型的键值对集合,它对应的泛型是Dictionary<TKey,TValue>

  动态数组和泛型集合的不同点和优缺点:

      动态数组对元素没有任何约束,想添加什么都可以。其根本原因是因为其内部存储数据的是一个Object类型的数组。

      泛型集合是带元素类型约束的集合(对添加里面的元素有一个约束)

      泛型集合避免了装箱、拆箱操作带来的性能损耗,在添加元素时参数类型进行检查

  常用方法
    add(), AddRange(), Insert(), InsertRange(), remove(), removeAt()

    Reverse()——将集合中的元素反转

4、哈希表
  内部机制:
    HashTable,键值对集合,其内部是一个结构体数组bucket[]。有三个东西:键、值、键的哈西码

    数据主要存储于:private bucket[] buckets;

private struct bucket
{
public object key;
public object val;
public int hash_coll;
}
  存取操作:

    存储的原理:下标是根据key的hash值算出来的。当我们向HashTable中Add元素时,元素储存在HashTable的数组里的下标是根据添加的Key的hash值算出来的(但因为hash值取模数组长度,所以肯定不会超过当前数组长度)。

    每个对象算出来的Hashcode并不是唯一的。有可能出现多个对象的HashCode相同。解决机制:

      a、再次hash一次

      b、桶装模式,将两个相同hashcode的对象装入统一个位置

      c、当新增时,HashTable里的容器数组已经满了,则以数组的两倍扩容

    取值原理:当我们从HashTable里取元素时(根据key来取),会根据key的hash值算出要取的元素的下标,并比较元素里的key和当前要找的key参数的hash值是否相等,同时还要比较两个key的引用是否一致。如果都满足,则确定找到要取的元素。

5、泛型集合
  引用名称空间:System.Collections.Generic

  List<T>——T是存储的类型

  Dictionary<K,V>

6、List<T>和ArrayList的性能比较
  ArrayList存值类型需要装箱猜想,而存储引用类型需要类型转换,而List<T>很明显不需要这些额外的开销,高性能显而易见

7、try语句块的使用时机
  网络操作(套接字),文件操作(IO相关),数据库操作,除法操作(除数为0的时候),强制类型转换操作

8、Windows Form程序相关文件
  designer.cs设计类和前台两个类是兄弟类的关系(partial)

9、Path类
  ChangeExtension(修改文件的后缀,“修改”支持字符串层面的,没有真的给文件改名)

    Combine——将两个路径合成一个路径【自动处理路径分隔符的问题】

    GetDirectoryName——得到文件的路径名

    GetExtension——得到文件的扩展名

    GetFileName——得到文件路径的文件名部分

    GetFileNameWithoutExtension——得到去除扩展名的文件名

    GetFullPath——得到文件的全路径,可以根据相对路径获得绝对路径

    GetTempFileName——得到一个唯一的临时文件名

    GetTempPath——得到临时文件夹的路径

    …………

10、操作文件夹、目录
  Delete——删除目录【recursive表示是否递归删除】

  Exists——判断目录是否存在

  move——移动

  GetDirectories+得到一个目录下的子目录

  GetFiles——得到一个目录下的文件

  …………

11、操作文件
  File——操作文件、静态类,对文件整体操作。拷贝、删除。剪切等

  AppendAllText——将文本contents附加到文件path中【如果文件不存在,则创建】

  Exists——判断文件path是否存在

  ReadAllLines——读取文本文件到字符串数组中

  ReadAllText——读取文本文件到字符串中

  WriteAllText——将文本contents保存到文件path中,会覆盖旧内容

  Copy——文件拷贝【true表示当文件存在时“覆盖 ”,如果不加true,文件存在时则报异常】

  Create——创建文件

  Delete——如果文件不存在则报错

  DirectoryInfo——文件夹的一个“类”,用来描述一个文件夹对象

  GetParent——得到目录的父目录

  FileInfo——文件夹,用来描述一个文件夹对象

  需要注意:

    获取当前exe文件执行的路径用 Assembly.GetExecutingAssembly().Location ,不要用Directory.GetCurrentDirectory() ,因为获取的是程序当前工作目录,这个路径可能会变

    修改文本编码通过GetEncoding获得该编码

12、文件流
  FileStream——任意类型

  StreamWriter——字符串写

  StreamReader——字符串读

13、using语句的本质
  本质是一个try{……}finally语句块

  所有要使用Using关键字来释放资源的类必须实现IDisposable接口

  Close执行了Dispose()并回收对象

  使用Using语句块并不能抓住异常,因为Using里面只做了 try……finally操作,并没有catch语句块,所以在using语句块中还要自己加上try……catch块来捕捉异常

14、序列化与反序列化
  Serialization特性

  二进制格式化器

  序列化:二进制格式化器,将对象里的字段及值以“文本”的方式保存成文本

    [Serializable]

    BinaryFormatter类方法

      Serialize——对象graph序列化到stream中

      Deserialize——将对象从stream中发序列化,返回值为反序列化得到的对象

    序列化需要注意的:

      a、呀序列化的类型必须标记为:[Serializable]

      b、该类型的父类也必须标记为:[Serializable],反射的时候有一个参数必须是“是否寻找父类对象”

      c、该类型中的所有成员的类型也必须标记为:[Serializable]

      d、序列化只会对类中的字段序列号(只能序列化一些状态信息)

  反序列化:二进制格式化器,先创建一个相同的对象,然后见“文本”里保存的字段的值设置到字段中。按照文本(字段、字段值、类名)信息里的类名,使用反射技术创建新对象,并将对一个字段的值设置到新的对象中

posted @ 2019-12-26 21:46  Attractor  阅读(151)  评论(0编辑  收藏  举报
                                                                                                                                                                                                        
                                                                                                                    :.Bs .Bs                                                                            
                                                                                                               :   BQgEbLE7                                                                             
                                                                                                           i .qQIEBQv.J2M2r K:                                                                          
                                                                                                         .L  r5ZgMPEjSY2UqPBQ1                                                                          
                                                                                                         PgZbuP2XPMIq51vSKZ2JrB:                                                                        
                                                                                                         BJBDRqgKPIbUqX1L5vr:DP                                                                         
                                                                                                         IsvEKQPddDgqvXU5ir7u7.                                                                         
                                                                                                       BPS7qZZPXLPEBRKYX5KYju                                                                           
                                                                                                       iQsL7DMqYX2gQbjJLQRUquY                                                                          
                                                                                                        PgSPPBRZ5ggdsS7UQJPU.Q                                                                          
                                                                                                        2qRPbXMXXKgIZYIDZL7.D                                                                           
                                                                                                       7.PXZKPSEIq2gsUPPrirPQ                                                                           
                                                                               QB        RB            PBvBQMIZbPuP5q5srrYb57                                                                           
                                                                             LQDZM       BPBi             XB5ZMMSPIEZqrXqE2                                                                             
                                                                            7Q55KQ      BbIvB7              jJP5PSDKXr5MP.                                                                              
                                                                            Qg5I2gr     RdIuSB               7DQEQdgPdI                                                                                 
                                                                            BPKsPYJ     BRQ1UMB             uMBEgPgPMZgv2Y5i:.                                                                          
                                                                           :RP1BP1XDgBQBDMPPUBi             :BZQbQdgPdPQMBQBQBQB5.                   .rj77iirYii...i:7Y5::                              
                                                                            ERBQDPBQBQgIDZQPB               DQBEMPgdgSZSPUPKMgBQBdg             iLqqPr7.   :svr:::uL7v5IPEBQP                           
                                                                             1MBgSqMZQPgPRP5U            vPQgBMBgBZQZMbgZRPdKPKqKDPBMRPEPdqb2XISLLii..   .  r1SQS7::         sr                         
                                                                              rSUZBPDPBXbKB:.vr         .QBRBDQgQMQRBDRZQdgdgdqQBJ2KgqqYuvJrvrrir.. .     .     ..i7LrL7i                               
                                                                                 vRBRBRBddQ.            QBRgDQZQZBZQgRDMdMEgPP   QQgsJsq2S7uvr.:..            ..       .iJ21.                           
                                                                                v5DMQDQQBMQ            KBDBEQgQDRDBDMDQZRPM5bM     :RgPvuj1JX7.              .ir:.7.:iYKQPBRBQi                         
                                                                                .BQQEgbRQBv            BRBMQgQZQDQdBZQZgPgKIEB        :dZBZbSbuL..     .ivrIUu::::.            K                        
                                                                                .QgSq5b5gQB            QBRBPQDQZBDMgQZRZgbPuBR            :ii:7rSUXvvir::                                               
                                                                               ..2EQdDIdqBR           QBDBQgDBDBgBZQgBdZbgI5Qi                                                                          
                                                                               PBQBERRBDBDb           BQBQBdQMQMBMQZBggqgPKuB                                                                           
                                                                               vQRgMSDDQRB2         .J5BDBQDMBMBgRDQgQDQEdJK5ri                                                                         
                                                                                .PgJQPPSQQR       BP:7PXQQBKggBRQEBZREBgE2uXdbBQ:     .             .           .:: : ....7   ..      . . :..           
   :      ..                                                         .           DQKqdXQMBL      iQQQXXMMBQg2QgQEBEBPZZZqI5d7qMEMi     ..:                   i.        ....:  .r   .:r   77Yi17. ur.rJrr
              :.      .               .       .     .           .:  ..i.r7:      XB5KvLJI1. :     ZdBIvZBQMJQZQgBDQZB2Q5XIBjsgB5Qq                .      ir : 7i7. ..   ..i :.r.    .:i:.   . ii. :i7r1r
                                                                 :              RBDQZgPE2SqPRBK    B5j:B57jSRBgBgQbMggbg2dqQ2BZPQi                        .    . : ..  ..rr  .:. : :.7i::r.:.: i7. :.:: 
                                                                              .EQqg5PKU2qJXdQqRgB7 .B:1Q2KBQQEREgPdXEZgPdbXIQgPP.                   :         .   .   .  .i .  .  ::rri.:..   ..ii.   : 
              .     ..           .                                          r:EBdEKSrUvUvJJPXP5PdBD75U.MQBbEgBRBgQgBZBgRqgUqJdqM       .   .    .7..   ...    i: ... . r   .::     ..:.i  ..   :..   .. 
  .         . ri7r:.                                    ..      .          UKQBgMPZPS:iirrEKdSPSbSgDgKSjSUEYr1gEBDgEQgBZgbPPgr.Ri       7QKI: ..  ..    i.:.  :i  qi.::.J.    :     :   :.ii: .:7.rr..v 
:  .         :   ...   r.                           .     .               :QRgPZPEKggZr::XSdqP5PSdSEKZPPSS7KuqQBEdjZdRPQEgPdQ  MKr..     UQqJUrJ.i.    .  .v.. :. .i .   Yr. . i ... :     :ir.  ..v.r. 
:   .:       :i.        :   .     :..   . :..:i... .r7:   7:             7BQQZgbXKEdQRMYPPP2PUP2qUbXPKgKE5PJg5EQBQBMQdgPdPQUsEddP1BZMPbv  qvEdPL:   .  .ri .Pb: rr. .ii  .: .   : .::  :1. .Yuj ..7i. r 
    :i..     . .        .i .:.     25ZPJ:Ur5iLYL iJ7:7ivj: 7 X..        rMJ2KQZRPPIgdDbDqgXEqd2P2KJq2P5P2dIUIg1SIQQBQBgQqdbQbBQBKIUE2BQBQguIK2IBYi sv:   .  :s     2L27  .   ::i::  iv:irv:i  :: ::::  .
r:r.::PPK7XYsvu7Jii:r:.   :rL77ii. .RQEU    7vYX.i7rI: .iJRbiiI1:      QBUvIDqQEZMQDgXP2dKdPRKEKZ5XuX2P5SUI7I2XsX1PPMDBRBQBdEPZUX2Ss2RBgQggPb5IPPu22PE27  .     Xi .EvJviJ7 .:v:..7L..i   :r.   :   :   
QK7D:  : :7bEgEUvX:. r.     r7:ri    L  : rr     ::.:RI  LrJ.:rv.UXPi: .rBQDbi75ubqEdQqPIPXZEBDRPESb2P5P5UL1jP2SjPKPIPKDKgdPSPXduPSgggQBQBdb5QEZYdqdvZ1BQYiD.  i:U irI.ir:SX:Ir: ..1r7 u. :i.r::.irYs:  
Dr.vqUPYr7YiUiX:  . .   r.  .L..i :7... Y..i  .7X.  ::Dgu     Y  ..      gB5irvUqSdSMQBgDqE5gIKPZPXddKZXDu1r25EI5jXIdIXUPUq5ILXUdZBPQPQRBQBgQgBQdrKSEKIUZMQPB. j7527SUq.iXQPYPZsY  rPsIrPrr...rL57i:Liir
  u5.ii.   2 ....  12r.Yrir: L   .   ir  q 7uL  :J .:  UR: :7rD7    i:.j  qK MQBgZIZ12qBQBgDKu.gZPrsPEXb5dUU75IP1Xu1v2sXuqIdqK7qdZSEKDdBDQgBRBRBM57EXZbZvXSQQM222XQBKPSPsdgBbPXQQg:vrs7u7EP5.7:7vK7::i:i
   7Y:i.j: iLr.:7i.i1b5Lq.    d.      :  JPriiLi:  J5:    ir2sURM.:2BKZ5i .i7 QQBQBQQY7:YUgMBP2:EQSiIIqSK2Kj5LUs2YPUq5bUP55IBQZPgKq2DDMSDZQgRgBdQULLKuEPP12IBQMXLUQQMPg2bUS1BDK1PQBs5XIs27SQPr7:irS2q1L.
.   J5EL:vrvii . : .  .vSQ: .  q      r: rP.  ...i..:isMr    ..UY7.  :.rir.::  .rsKBPrLdL:.vsEPP.jUJ7JrjYX51PbYIuPIPSK1u5g7:rJuI5DPdSXvKJu72UPPQQBZJJqs12PUJ7KsPq7vUubPqjK1IvdXP2v1BXq5XXXuPDRu1Lv:r:vJj