1. 抽象方法与虚方法的区别   先说两者最大的区别:抽象方法是需要子类去实现的.虚方法是已经实现了的,可以被子类覆盖,也可以不覆盖,取决于需求.因为抽象类无法实例化,所以抽象方法没有办法被调用,也就是说抽象方法永远不可能被实现. 如果需要了解虚方法及抽象方法具体的定义和语句,请移步:C#多态性学习,虚方法.抽象方法.接口等用法详解. 我们具体看个例子来帮助理解,首先是虚方法: public class Shape { public virtual double CalculateArea()…
一:主键索引,唯一索引和普通索引的关系主键索引 主键索引是唯一索引的特殊类型. 数据库表通常有一列或列组合,其值用来唯一标识表中的每一行.该列称为表的主键. 在数据库关系图中为表定义一个主键将自动创建主键索引,主键索引是唯一索引的特殊类型.主键索引要求主键中的每个值是唯一的.当在查询中使用主键索引时,它还允许快速访问数据.主键索引不能为空.每个表只能有一个主键 唯一索引: 不允许两行具有相同的索引值.但可以都为NULL,笔者亲试. 如果现有数据中存在重复的键值,则数据库不允许将新创建的唯一索引与…
SQL Server中通用数据库角色权限的处理详解 前言 安全性是所有数据库管理系统的一个重要特征.理解安全性问题是理解数据库管理系统安全性机制的前提. 最近和同事在做数据库权限清理的事情,主要是删除一些账号:取消一些账号的较大的权限等,例如,有一些有db_owner权限,我们取消账号的数据库角色db_owner,授予最低要求的相关权限.但是这种工作完全是一个体力活,而且是吃力不讨好,而且推进很慢.另外,为了管理方便和细化,我们又在常用的数据库角色外,新增了6个通用的数据库角色. 如下截图所示.…
SQL Server中排名函数row_number,rank,dense_rank,ntile详解 从SQL SERVER2005开始,SQL SERVER新增了四个排名函数,分别如下:1.row_number2.rank3.dense_rank4.ntile 下面我们对这四个函数一一进行讲解 1.Row_Number函数可能row_number函数大家比较熟悉一些,因为它的用途非常的广泛,我们经常在分页与排序中用到它,它的功能就是在每一行中生成一个连续的不重复的序号(是不是和自增量有些像).下…
CSS中伪类及伪元素用法详解   伪类的分类及作用: 注:该表引自W3School教程 伪元素的分类及作用: 接下来让博主通过一些生动的实例(之前的作业或小作品)来说明几种常用伪类的用法和效果,其他的读者可以自己尝试: 伪元素和伪类的区别从作用也可以看出 伪元素:伪元素是创造关于文档语言能够指定的文档树之外的抽象.例如文档语言不能提供访问元素内容第一字或者第一行的机制.伪元素允许设计师引用它们,否则这是难以办到            的.伪元素还提供样式设计师给在源文档中不存在的内容分配样式(例…
SVN组成中trunk,branches and tags功能用法详解  我相信初学开发在SVN作为版本管理时,都估计没可能考虑到如何灵活的运用SVN来管理开发代码的版本,下面我就摘录一篇文章来简单说明SVN里的trunk,branched,tags这个三个文件目录的用法.     我将会详细说明我是如何应用SVNtrunk(树干).branches(分支)和tags(标记).这种方法同样被称为“branchalways”,两者非常接近.可能我所介绍的并不是最好的方法,但是它会给新手一些解释说明…
UIViewController中各方法调用顺序及功能详解 UIViewController中loadView, viewDidLoad, viewWillUnload, viewDidUnload, viewWillAppear, viewDidAppear, viewWillLayoutSubviews,viewDidLayoutSubviews,viewWillDisappear, viewDidDisappear方法,按照调用顺序说明如下: 调试日志:     1 2 3 4 5 6 7…
更多原创测试技术文章同步更新到微信公众号 :三国测,敬请扫码关注个人的微信号,感谢! 原文链接:http://www.cnblogs.com/zishi/p/6766994.html 众所周知Sonar是一个很强大的静态扫描工具,代码提交之后可以自动触发代码扫描,并给出report,因此给开发项目带来了很多便利. 日前我把本地版本升级到6.2了,项目的度量项也增加了许多.看过去一堆的ABCD,A应该是最好,D最差,但是中间的差别还是需要弄清楚. 为了更好的理解,我详细翻看了官方文档,同时也参考了…
activity的生命周期 activity的四种状态 running:正在运行,处于活动状态,用户可以点击屏幕,是将activity处于栈顶的状态. paused:暂停,处于失去焦点的时候,处于paused,可能是被如弹框一样遮盖,被通明的activity的放置到栈顶,paused一起状态都存在. stopped:处于stopped状态,是当前的activity被遮盖,是完全遮挡的那种,覆盖屏幕,一起的状态信息还是存在的. killed:activity被销毁,回收,一切的状态信息不存在了.…
opencv中  int main(int argc,char* argv[])详解 argc是命令行总的参数个数     argv[]是argc个参数,其中第0个参数是程序的全名,以后的参数     命令行后面跟的用户输入的参数,比如:     int   main(int   argc,   char*   argv[])     {     int   i;     for   (i   =   0;   i<argc;   i++)     cout<<argv[i]<&l…