美化博客,更改鼠标显示效果

下面这一段仅仅为凑字,不想看的可以直接略过~

前两天写了一篇为博客添加载入中效果,有朋友说,这样会使博客更慢,

慢是肯定的,只是实际上根本算不上影响.

我在说一下哈,WP程序中自带Jquery库,并且你的主题使用的很多效果都是使用的这个Jquery库来实现的

我们来测试一下,将那些代码拷贝下来,另存为html文件,然后使用gzip进行压缩,看下压缩后的大小

上图可以看出,大小为847字节,1KB都不到,当然上面的仅仅是增加的文本大小,还有一个gif图片

虽然说,这张图片是7Kb左右,但是对于现在的网速基本上可以忽略不计,

在加上浏览器缓存,使这张图片只加载一次(理论上来说)

所以说,不需要担心增加这个会使博客速度减慢

 

好了,正文开始,也许有人会发现,我博客中,鼠标样式换了..

虽然有点小-_-没办法,找不到好卡的,先用这个精简的吧,

这次没人问,我就来说了,嘿嘿自觉吧~

好啦,实际上,这个实现比增加载入中提示更简单…

File类演示

DirectoryInfo类演示

成员名称 说明
ReadOnly 文件为只读。
Hidden 文件是隐藏的,因此没有包括在普通的目录列表中。
System 文件为系统文件。文件是操作系统的一部分或由操作系统以独占方式使用。
Directory 文件为一个目录。
Archive 文件的存档状态。应用程序使用此属性为文件加上备份或移除标记。
Device 保留供将来使用。
Normal 文件正常,没有设置其他的属性。此属性仅在单独使用时有效。
Temporary 文件是临时文件。文件系统试图将所有数据保留在内存中以便更快地访问,而不是将数据刷新回大容量存储器中。不再需要临时文件时,应用程序会立即将其删除。
SparseFile 文件为稀疏文件。稀疏文件一般是数据通常为零的大文件。
ReparsePoint 文件包含一个重新分析点,它是一个与文件或目录关联的用户定义的数据块。
Compressed 文件已压缩。
Offline 文件已脱机。文件数据不能立即供使用。
NotContentIndexed 操作系统的内容索引服务不会创建此文件的索引。
Encrypted 该文件或目录是加密的。对于文件来说,表示文件中的所有数据都是加密的。对于目录来说,表示新创建的文件和目录在默认情况下是加密的。

Directory类演示

C#文件操作

介绍

.Net框架中提供了强大的类库进行文件操作,相关的类都在System.IO命名空间中

System.IO里面定义了一系列的类、接口、枚举、和委托等

在C#中,操作文件和文件夹的实用类都集中在System.IO这个命名空间中

System.IO提供了四个类型来实现来对单个文件或者文件夹的操作

Directory与DirectoryInfo这两个类用来实现对文件夹的相关操作
File与FileInfo这两个类用来实现对文件的相关操作

文中介绍的属性以及方法可能不全,介绍的全为常用属性!

继承关系

Directory与File这两个类直接继承自Object类,并且这两个类为静态类

DirectoryInfo与FileInfo为实例类,也就是说,需要实例化才能进行相关操作

Directory类

Directory上面已经写到,它是一个静态类,包含了创建、移动、删除和枚举所有文件夹/子文件夹的成员

方  法 说  明
Delete(String,Boolean) 删除指定的文件夹(如果指示)并删除该文件夹下任何子文件夹
GetDirectories(string) 获取指定文件夹中子文件夹的名称,并返回一个表示当前文件夹中所有子文件夹的名称数组string[]
GetFiles(string) 返回指定文件夹中文件的名称数组string[]
Move(string,string) 将一个文件夹及其内容移动到一个新的路径
GetLogicalDrives() 返回逻辑驱动器表

Directory类操作演示

DirectoryInfo类

DirectoryInfo与Directory类相似,对目录进行各种操作.不同之处是需要实例化后才能使用.

属  性 说  明
Parent 获取指定子目录的父目录DirectoryInfo对象
Root 获取路径的跟DirectoryInfo对象
Name 返回目录的名称
CreationTime 当前 FileSystemInfo 对象的创建日期和时间
Exists 获取目录是否存在,如果目录存在,则为 true,否则为 false
FullName 获取目录的完整路径
方  法 说  明
Create() 创建目录
Delete() 如果目录为空,则删除该文件夹
Delete(bool) 删除该目录,指定是否删除该目录下的子文件或文件夹
GetFiles() 获取该目录下的文件返回FileInfo数组
GetDirectories() 获取该目录下的所有文件夹,返回DirectoryInfo数组
CreateSubdirectory(string) 创建子目录
MoveTo() 将该文件夹移动到新位置

DirectoryInfo类操作演示

File类

File于Directory相同是一个静态类,它只包含静态成员.在使用时都不需要实例化,而是直接使用类名.方法()的方式调用

方  法 说  明
Exists(string) 用于检查指定文件是否存在,该方法返回一个布尔值
Copy(String, String) 将现有文件复制为新文件,不允许覆盖同名的文件
Move(String,String) 将指定文件移动到一个新的路径
Delete(string) 删除指定文件,不存在会引发异常,调用前最好先做判断是否存在

File类演示

FileInfo类

FileInfo类能够获取硬盘上现有的文件的详细信息(创建时间,大小,文件特征等),并帮助我们创建,复制,移动和删除文件,与DirectoryInfo类相识,该类需要实例化

属  性 说  明
Exists 检查文件是否存在,返回一个布尔值
Extension 获取文件扩展名
Name 获取文件名
FullName 获取文件的完整路径
Length 获取当前文件的大小
方  法 说明
CopyTo(string) 将现有文件复制到新文件,不允许覆盖
CopyTo(string,bool) 将现有文件复制到新文件,允许覆盖
Delete() 永久删除该文件
MoveTo(string) 将现有文件移动到新位置,不允许覆盖

未完,我只是个学生,不喜勿喷

经典:冒泡排序

单元测试的运行

在编写好单元测试后,如何运行单元测试代码来进行测试?

如何运行单元测试代码

通过Visual Studio(以下简称VS)菜单项我们可以看到,在VS中运行单元测试有很多种方法

1.运行当前上下文中的测试:这种方式只运行于当前选择的项目相关的单元测试代码,这些项可以是解决方案,也可以是项目,也可以是当前选择的代码文件

2.运行解决方案中的所有测试:这种方式会将我们解决方案中的所有单元测试代码都运行一次,在我们开发过程中,每隔一段时间运行一次,就能够保证在我们写的代码当中出现尽可能少的错误

3.运行所有受影响的测试:这是一种很有用的进行单元测试的选项,当我们对代码进行修改后,可以运行这种测试,来求证这次修改对其他代码的影响,这样可以尽早的发现这次修改对其他代码所带来的影响,并将这次修改的风险降到最低

image

4.运行指定的测试:在VS中可以通过菜单项中的测试中的窗口中的测试列表编辑器来打开测试列表编辑器

image

在测试列表编辑器中,我们可以有选择性的运行一些测试

image

 

在VS中,也可以对单元测试代码进行调试,在调试时,我们也可以对测试代码添加断点,并且逐步的运行,然后在运行的过程中查看运行的状态,这和我们调试项目中的业务代码是一样的。

image

这些运行、调试和测试的菜单都在VS的快捷菜单中,都有对应的项目。

image

在我们运行测试的过程中,是不能进行调试的,我们可以根据我们的实际情况来选择使用哪一种方式来运行测试。

在我们运行单元测试代码之后怎么知道运行的单元测试哪些通过了,哪些失败了呢
在VS中,运行完测试之后,运行的结果会出现在VS中的及时窗口内,我们也可以通过VS的测试菜单中的窗口中的测试结果来查看测试结果

image

在测试结果窗口中,我们可以看到每一个测试的测试结果,其中绿色的是表示测试通过,红色的表示测试未通过,通过双击每个项,我们可以查看测试的详细信息,还可以选择其中的几项,再次进行运行或者调试

imageimageimage

单元测试(1)

在VSTS中的单元测试工具可以对任何类、接口、结构等实体的字段、属性、构造函数、方法等进行单元测试。
创建单元测试分为两类:

1.整体测试:在类名称上右击鼠标,点击创建单元测试,就可以对整个类创建单元测试了。这时它会为所有可以被测试的内容全部添加测试方法,开发人员可以直接在自动添加 的方法内添加测试代码就可以了

2.单独测试:将鼠标聚焦到待测试的这个项目名称之上,点击鼠标右键,在右键菜单中选择创建单元测试选项,这样就可以单独为某个方法来创建单元测试了。

通常我们把单元测试的代码放到一个单独的项目中,在Visual Studio中,新建项目时就有一种项目是测试项目,在实际测试时,我们在给一个类或者一个方法创建单元测试的时候Visual Studio会自动检测当前的解决方案中是不是已经有了测试项目,如果没有,它会提示我们并且,只要我们经过简单的选择之后就会自动为我们添加一个测试项目到我们的解决方案中,如果已经有了测试项目那么我们所添加的测试方法或者测试类都会自动添加到这个解决方案中的测试项目中来

在编写单元测试代码之前,我们先了解一个在单元测试中非常重要的类
Assert类

Assert:断言

在using Microsoft.VisualStudio.TestTools.UnitTesting命名空间中

Assert是一个静态类

成员:

序号

方法

描述

1

AreEqual

判断两个值是否相等,如果两个值不相等,则测试失败。有多个重载

2

AreNotEqual

判断两个值是否不相等,如果两个值相等,则测试失败。有多个重载

3

AreSame

判断引用的对象是都相同。如果两个输入内容引用不相同的对象,则测试失败

4

AreNotSame

判断引用的对象是否不相同。如果两个输入内容引用相同的对象,则测试失败

5

Fail

断言失败

6

Inconclusive

表示无法证明true或false的测试结果

7

IsFalse

指定的条件是否为false。如果该条件为true,则测试失败

8

IsTrue

指定的条件是否为true。如果该条件为false,则测试失败

9

IsInstanceOfType

测试指定的对象是否为所需类型的实例。如果所需的实例不在该对象的继承层次结构中,则测试失败

10

IsNotInstanceOfType

测试指定的对象是否为所需类型的实例。如果所需的实例在该对象的继承层次结构中,则测试失败

11

IsNull

测试指定的对象是否为空

12

IsNotNull

测试指定的对象是否为非空

TestClass特性

用于标识一个类是测试类

用法:[TestClass()]

测试类的命名方式:<被测试类的类名>Test,如被测试类名为Demo则测试类名为DemoTest

TestMethod特性

用于标识一个测试方法

用法:[TestMethod()]

测试方法的命名方式:<被测试类的方法名>Test,如被测试方法名为Demo则测试方法名为DemoTest

单元测试简介

单元测试就是编写一段代码,用来检查某个特定条件下,另外一段代码的行为是否符合我们的预期
单元测试是唯一需要编写代码才能进行测试的方法
单元测试的代码与实际程序的代码具有同等的重要性
每一个单元测试.都是用来定向测试它所对应的一个单元代码是否正确执行单元测试应该由被测试代码的编写者来完成
单元测试所用的工具:

其中有名的XUnit系列中的NUnit工具,就是用在.Net框架中的单元测试工具,VS2005之后,都自带了单元测试工具他和Visual Studio开发工具紧密的结合起来,
使用起来更加的方便和高效


单元测试的好处:

1.单元测试能够协助程序员尽快找到代码中bug的具体位置,如果不执行单元测试,那么代码中的错误都是在我们操作的时候才能发现的,
当我们发现一个错误的时
候,可能我们需要根据抛出的异常来确定是在哪个代码中出现的问题但是try catch块的效率比较低
,所以我们在大多方法中都不会对try catch块进行定义,所
以一旦发现异常,都是在最顶层的代码中所抛出的,但是这个错误往往都是在底层的代码段中发生的,
当我们发现错误的时候,只能逐行在代码中去找,大多数中,我
们都是在修改代码中出现的错误,在修改代码中,所需的时间甚至能达到80%,
这也
就是所谓的2/8现象,在这种状态之下,我们会编译整个程序然后通过逐步的操作,直到出现错误的地方,然后在查找代码中是否有错误,这样找错误的方法,
效率非
常低,如果我们使用单元测试的话,就不需要逐步的操作,而是直接运行这个方法的单元测试,
将输入的条件模拟成出现错误的时候所出现的信息和调用的方法的
形式,这样寻找错误的时间久缩短了许多,这样解决起来速度也就提高了许多,
次找到错误都去修改单元测试,那么下次,就不会再出现相同的错误,如果通过模拟单元测试也没有出现异常,这时也就可以断定,
并不是这段代码所出现的错误,
而是与其相关的代码所出现的错误,这样我们只需要调试其他代码的单元测试就可以找到真正的错误

 

2.单元测试能够让程序员对自己的程序更有自信,因为在测试的时候,已经把所有可能的bug都预料到了,程序代码中,已经把这些预料到的bug解决了,
所有我们会
对自己的程序越来越自信

 

3.能够让程序员在提交项目之前就将代码变得更加的强壮,我们在编写程序时通常会用最理想的思路进行编写,但是会有很多不可预料的错误,
使用单元测试可以
找到非理想情况下的bug,修改后,会使代码更加的健壮

 

4.单元测试可以协助我们进行更好的开发
测试驱动开发:码未动,测试先行

所谓码未动,测试先行就是先写测试代码,然后在进行编码.

因为,我们在编写单元测试的过程中,其实就是在设计我们的代码所要处理的问题,单元测试写的好,就代表你的代码写的好,
通过这种方式,我们就根据单元测试预
先设想的情况去编写代码,这样就不会盲目的在代码中添加一个属性,或者添加一个方法

 

5.单元测试能够向其他的程序员展示你的程序应该如果进行调用,通常情况下单元测试写的都是在各种情况下如何调用我们所写的那一段被测试的代码,
所以单
元测试也可以作为一个示例,向其他的程序员来展示这些我们所写的代码应该如何调用

 

6.单元测试能够让项目主管能够更了解系统当前的情况在传统的软件管理中,项目的进度和代码的质量都只是通过口头的形式传递到主管那里的,
这在很大的程度上都有很大的主观性,所以有的时候主管获取到得反馈
信息可能是事实,但有的时候就就未必是事实.
但是如果我们的项目通过了一个完
善的单元测试,那么主管就可以通过查看单元测试中的运行中的结果和单元测试的代码覆盖率,
来确定开发人员的工作是不是真的完成了


Go→百度百科