Debug.Assert()带三个参数,布尔值、字符串 判定函数
Trace.Assert()带三个参数,布尔值、字符串
问题System.IndexOutOfRangeException详见P143 重点结构化异常处理语法:try……catch……finally 注:重点了解其语法以及熟练使用
关键字:throw 产生一个异常,需要把新初始化的异常作为其参数,产生一个异常,需要使用使用命名空间System的另一个异常System.Expection
例如throw(new System.Expection);
问题使用Trace.WriteLine() 要优于使用Debug.WriteLine(),因为调试版本仅能用于调试程序,这个观点正确与否,怎么解释? OPP技术
构造阶段—构造函数 对象的生命周期
析构阶段—析构函数(一般情况下,我们不依
赖析构函数释放对象实例使用的资源)
关键字:readonly表示这个字段只能在执行构造函数的过程中使用,或由初始化赋值语句赋值 public 关键字private 成员定义internal protected 定义字段
virtual-----方法可以重写
关键字abstract-----必须在非抽象的派生类中重写(抽象类) 定义方法override-----重写了一个基类方法 external-----定义放在其他地方
get关键字/函数 (访问器) 定义属性
重制成员:使用工具修改代码,而不是手工修改,如将public string mystring----->private string mystring set关键字/函数------->value关键字赋值
关键字:base 表示包含在派生类中的基类的执行代码,类似于构造函数的控制(1,要对派生类的用户隐藏继承的公共成员,但任然能够在类中访问其功能;2,要给继承的虚拟成员添加执行代码,而不是简单是的重写的新执行代码替代它)
关键字:this 与base一样,this也可用在类成员的内部,且该关键字也引用对象实例,即是当前实例,this关键字最常见的功能就是把当期对象实例的引用传递给一个方法
循环冗余码校验( CRC 校验):
循环冗余码校验是目前一种最常用的,也是最有效的差错检测编码。对一个 k 比特的数据块(或称报文),发送方生成一个 n比特的序列,称为帧检验序列( FCS),这个序列与原 k 比特的数据块组成一个长度为k+n比特的新序列(帧),如图 10-2-2,一起发送。当接收方收到这个k+n比特的帧后,进行校验。 这个特定的多项式称“生成多项式”。发送方采用数据报文整除生成多项式,得到帧检验序列,附加到发送数据报文之后。这个过程称为“生成”。
接收方,对接收到的报文用同样的生成多项式,再次进行整除,这个过程称为“校验”。若除后余数为 0(即能整除),表示接收的数据块正确,否则,表示接收数据有错。上述 CRC 校验只能发现错误,而不能纠正错误。
CRC 校验能够: 1)检查出全部一位错;
2)能检查出全部离散的二位错; 3)能检查出全部奇数个数错;
4)能检查出全部长度小于或等于 n 位的突发错( n 为生成多项式的阶次);
5)能以 1-( 1/2)^(n-1)的概率检查出长度为n+1 位的突发错。 例如,如果 k=16,则该 CRC 校验码能全部检查出小于或等于 16 位长度的突发错,
并能以 1-( 1/2)^( n-1)=99. 997%的概率检查出长度为 17 位的突发错,漏检概率为 0.0003%。
因此 CRC 校验的校验效率很高,是现代通信技术中使用最多的方法。要达到上述校验效率,生成多项式是关键。常用的生成多项式有:
CRC-12 P(x) =x^12+x^11+x^3+x^2+x^1+x^0 CRC-16 P(x) =x^16+x^15+x^2+x^0 CRC-CCITT P(x)=x^16+x^12+x^5+x^0 CRC-32
P(x)=x^32+x^26+x^23+x^22+x^16+x^12+x^11+x^10+x^8+x^7+x^5+
x^4+x^2+x^1+x^0
CRC 校验可用硬件电路实现,其逻辑如图 10-2-3 所示,其中相加点为异或逻辑,方框为移位寄存器,位数与帧检验序列相同。CRC 校验也可比照图 10-2-3,采用软件实现。其中多项式整除采用按位除(不带进位)。即运算过程采用异或、移位操作完成。用程序实现 CRC校验序列的生成和 CRC 校验的过程如下:
CRC 校验序列生成:
1.首先在数据报文后添入与帧检验序列位数相同个 0。从数据序列头部开始,与生成多项式进行异或运算。
2.根据数据序列最高位的状态,若为 1,进行异或运算;若为 0,不进行异或运算。然后将整个数据报文(连同添加的 0 一起)左移一位,移出的数据自动丢失。
3.对剩余的报文继续执行第 2 步运算和左移过程,直到添加的 0 也经异或运算完成。产生的余数即为生成的 CRC 校验码序列。将它作为报文的添加字节,一起发送。CRC 校验的计算方法与生成过程中第 2、 3 步相同,直到报文最后一位(连同发送端添加 CRC校验码序列在内),若结果余数为 0,表示正确,否则接收到的报文有错。 例 10-2-1 CRC 校验过程