Fork me on GitHub
摘要: T-SQL中的11个流程控制语句关键字 在T-SQL中,与流程控制语句相关的关键字有11个:BEGIN...ENDBREAKGOTOCONTINUEIF...ELSEWHILERETURNWAITFORCASLERAISEERROR和PRINTBEGIN…END关键字BEGIN…END也是流程控制语句需要用到的最基本关键字,用于将多个语句划分成逻辑上的一部分。其实可以直接理解成Delphi的begin...end 或者C类语言的{},用于按块(block)顺次执行多条语句。IF..ELSE关键字IF..ELSE关键字实现了非此既彼的逻辑。和高级语言中的IF..ELSE具有完全一样的使用方法,这 阅读全文
posted @ 2012-03-07 22:41 Halower 阅读(1546) 评论(0) 推荐(0) 编辑
摘要: 对于抽象类,只需要将它看成一种其他类实现某些功能的模版,例如我们定义一个事物模版,那么它有身高,体重,语言,国籍,语言......这样的一系列的特征我们知道他应该描述的是一个人,只要我们将这些特性一一赋值,就能知道这个事物的具体存在。因此我们不能实例化这个模版(不能使用new关键字),他不代表任何一个现实的存在,只是为利用它而进行实例化的实例提供了若干接口,因为他是模版所以不能私有化,即不能使用private关键字。同时抽象方法隐含为virtual方法,以重写(override)的方式达到实例化的目的,但是不能使用virtual关键字。 在对抽象类测试的过程中,我发现了如下特性:1.抽象类.. 阅读全文
posted @ 2012-03-07 20:30 Halower 阅读(452) 评论(0) 推荐(0) 编辑
摘要: 认识触发器:触发器是一种特殊的存储过程,它不能被显示的调用,而是在往表中插入记录,更改记录或者删除记录时,被自动激活。在触发器中可以查询其他表,也可以执行更复杂的T-SQL语句。如果执行的T-SQL语句执行了一个非法操作,则可以通过回滚事务使语句不能执行,并返回到事务执行前的状态,Microsoft SQL Server 允许为任何给定的 INSERT、UPDATE 或 DELETE 语句创建多个触发器。触发器的作用:◎触发器可以对数据库进行级联修改◎触发器可以完成比CKECK约束更复杂的限制◎触发器可以发现改变前后表中数据的不同,并根据这些不同来进行相应的操作。◎对于一个表上的不同操作(IN 阅读全文
posted @ 2012-03-07 20:29 Halower 阅读(934) 评论(1) 推荐(4) 编辑
摘要: 原理:当需要在内部类的内部访问外部类实例时,可以将代表外部类的实例的this关键字作为一个参数传递给内部类,这样就可以实现在内部类的内部访问外部类实例,其实质还是在内部类中用外部类的实例去访问自身的方法而已。如下我写的实例主要是看卡这种效果,可以参考一下: using System;namespace TestinerClass{ class OutClass { string name = "外部类实例字段"; public void display() { Console.WriteLine("调用外部实例方法!... 阅读全文
posted @ 2012-03-07 20:29 Halower 阅读(3345) 评论(0) 推荐(0) 编辑
摘要: 它与this关键字一样,都是作为类的实例(因此不能调用基类的静态成员和抽象成员)简写或者替代而存在的,只不过this关键字用于替代本类的实例,base关键字用于替代基类的实例,用法很简单,其访问基类的形式如下:base.【标识符】 base[【表达式列表】] 这个类型的一看便可以大概猜测多用于基类实例的索引器操作,在我下面演示的代码中你会看到它的用法。对于 base.【标识符】的访问形式再次说明一下:对于非虚方法,这种访问仅仅是对基类实例成员的直接访问,完全等价于((base)this).【标识符】。对于虚方法,对于这种访子类重写该虚方法运用这种访问形式也是(禁用了虚方法调用的机制)对基类实. 阅读全文
posted @ 2012-03-07 20:21 Halower 阅读(511) 评论(0) 推荐(0) 编辑
摘要: 密封类就是将一个类封闭起来,断其子孙的一种方式。书面点说,就是从所修饰的类派生出其他类,所以一个密封类是没有也不能继承的类,因此sealed关键字和abstract关键字不能同时使用。 密封方法则不是为了防止继承而是防止重写,而且它是为了重写基类的虚方法并提供具体的实现,同时防止其后继类(派生类)再次重写该虚方法因此在密封方法中sealed关键字总是和override关键字同时使用。这些都很简单但是代码总结起来还是不够直观,必须实际感受下: 1 using System; 2 3 namespace SealClassTest 4 { 5 public sealed class S... 阅读全文
posted @ 2012-03-07 20:21 Halower 阅读(3208) 评论(0) 推荐(0) 编辑
摘要: 一.隐式转换从任何引用类型到object。从任何类A到其基类B(或着后续基类),也即A派生自B。从任何实现I接口的类A到接口I.从任何接口I1到其基接口I2(或着后续基接口)。 二.显式转换从object到任何其它引用类型。从基类B到其子类A.从任何类A到任何接口I(类A不能被密封,A不实现接口I)从任何接口I到任何类B(类B实现接口I,切不密封)从任何接口I2到任何接口I1(前提是接口I2不是I1派生的) 测试代码如下:using System;namespace ConvertClass{ interface IDatabase { void Query(); } interface IF 阅读全文
posted @ 2012-03-07 20:20 Halower 阅读(749) 评论(0) 推荐(0) 编辑
摘要: 类可以看做是创建一组对象的模版,类似的接口可以看做创建一组类的模版。一个类可以实现多个接口,从而实现多重继承。接口使得服务协议与实现相分离,是组件编程的基础,是组件向外公布其功能的唯一方法。 接口的设计原则是:一旦发布一个接口就不能再更改它,但是可以通过继承扩展新的接口。接口成员的特点(以下在学习中的总结):1.接口成员都是public类型的,但是不能使用public修饰符。2.接口成员的声明不能包含new之外的其他任何修饰符。3.接口不能包含常量,字段,运算符,静态成员(这些与抽象方法不同),实例构造函数,析构函数或类型。4.接口修饰符只允许使用new,public,protected,i. 阅读全文
posted @ 2012-03-07 20:20 Halower 阅读(606) 评论(0) 推荐(0) 编辑
摘要: 异常类型的类别基类 Exception 下存在两类异常:从 SystemException派生的预定义公共语言运行库异常类。从 ApplicationException派生的用户定义的应用程序异常类。Exception 包含很多属性,可以帮助标识异常的代码位置、类型、帮助文件和原因:StackTrace、InnerException、Message、HelpLink、HResult、Source、TargetSite 和 Data。 以下我开始对这几个属性开始测试代码演示如下: Code 1 using System; 2 3 namespace Uer_Test 4 { 5 cl... 阅读全文
posted @ 2012-03-07 20:19 Halower 阅读(1821) 评论(0) 推荐(0) 编辑
摘要: as 运算符类似于强制转换操作。但是,如果无法进行转换,则 as 返回 null 而非引发异常。as 运算符只执行引用转换和装箱转换。as 运算符无法执行其他转换,如用户定义的转换,这类转换应使用强制转换表达式来执行。expression as type等效于(但只计算一次 expression)expression is type ? (type)expression : (type)nullas 运算符用于在兼容的引用类型之间执行转换。例如:// cs_keyword_as.cs// The as operator.using System;class Class1{}class Clas 阅读全文
posted @ 2012-03-07 20:19 Halower 阅读(655) 评论(0) 推荐(0) 编辑
摘要: 1.拆分字符串 1.1 以下例举一个拆分句子的demo:using System;using System.Text.RegularExpressions;namespace RegexSplit{class Program{ public static void Main(string[] args) { Console.WriteLine("请输入要分拆的字符串,并按Enter键确认。"); string input=Console.ReadLine(); string pattern=@"\.|,|:|;|。|,|:|;"; string[] rs 阅读全文
posted @ 2012-03-07 20:18 Halower 阅读(456) 评论(0) 推荐(1) 编辑
摘要: 边关魂不尽风霜无限度,断崖红云鹤边飞。紫日红缨军家鼓,大喝一声入关去。 阅读全文
posted @ 2012-03-07 20:18 Halower 阅读(264) 评论(0) 推荐(0) 编辑
摘要: 这两天太懒了昨晚又通宵玩了一夜游戏今天补睡了一天,所以进度慢了点,不过也没啥,每天进步一点点就行了,哈哈。我在前面介绍了数组,有些网友问我咋把数组放到集合里讨论,其实数组就是我们最常用的一种集合,所有的数组都是从System.Array类继承下来的,今天其实主要的内容是集合构造的效率问题,也就是我今天的主题----扩容。今天只以ArrayList为例,但是它适用与所有的集合(当然包括数组)。书面一点说就是System.Collections命名空间中的所有集合在到达当前的容量时都会自动扩容,内存被重新分配,元素从旧的集合复制到新的集合,这虽然减小了所需代码,但是集合的性能会有所降低,避免这种. 阅读全文
posted @ 2012-03-07 20:17 Halower 阅读(358) 评论(0) 推荐(0) 编辑
摘要: 这几日太忙了,复习专业课,忙了几日其实也没认真看书,呵呵,下面再说一下事件,这个便是只要你真正理解了这个也就是委托的一种特例,是一种特殊的委托类型(也可以看作一个字段但是依旧返回的是委托类型,为什么呢,因为即便是stringstr ,str依旧是一个string类型 的参数),这个只要自己理解就不难了,问人根本解决不了问题和疑惑,昨日开始看时问了几个开发了几年的程序员一个问题,他们也是回答摸棱两可,最后没办法还是自己搞定了。由于马上要上课去了,我只能在中午画了一个思维图和写的一个Demo给大家看一下我的思路,如有不同见解可以留言以便讨论。示例如下:using System;namespac.. 阅读全文
posted @ 2012-03-07 20:17 Halower 阅读(1269) 评论(3) 推荐(1) 编辑