自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 收藏
  • 关注

原创 SQL事务

事务--原子性-隔离性-一致性-持久性BEGIN TRANSACTIONDECLARE @errorSum INTSET @errorSum=0 --初始化为0,即无错误UPDATE bank SET currentMoney = currentMoney-1000 WHERE customerName = '张三'SET @errorSum = @errorSum +

2016-03-31 21:38:36 265

原创 Sql类型转换、select、set赋值区别

declare @Name varchar(12),@Id intselect @Name = 'smf',@Id = 1set @Name = 'sun' set @Id = 2print @Nameprint @Id----------------------------declare @Name varchar(20)set @Name = 'smf'set

2016-03-31 20:57:23 330

原创 SqlServer部分内置函数

--常见字符串操作函数select charindex('server','Sqlserver2008',2)  --sql索引从1开始,这里结果为4select charindex('ser','Sqlserver2008')select LEN('Sqlserver2008')select LEFT('SqlServer2008',charindex('ser','Sqlser

2016-03-31 00:18:40 1012

原创 创建数据库、文件组、删除数据库

--1.创建数据库use mastergocreate database db_Teston primary(Name = 'DB_Test',FileName = 'F:\测试文件夹\DB_Test_data.mdf',Size = 10MB,MaxSize = 100MB,FileGrowth = 10%)Log on(Name = 'D

2016-03-29 21:05:04 940

原创 ADO.NET:连接层

1.ADO.NET类库有三种不同的方式来实现数据访问:连接式、断开式、通过Entity框架(EF)2.使用连接式,代码需要显示连接或者断开基层数据源,用这中方式使用ADO.NET时,通常会用到连接对象、命令对象、和数据读取器对象来实现数据交互。3.数据提供程序是一组定义在用于和特定数据源类型进行通信的命名空间内的一组类型。每种提供程序都有一系列类来提供核心功能。

2016-03-20 11:27:05 284

原创 对象序列化

1.序列化描述了持久化(可能包括传输)一个对象的状态到流(如文件流、内存流)的过程。被持久化的数据包括所有以后需要用来重建(反序列化)对象状态所必须的信息。2.通过人工保存对象的每个字段数据,并且在需要的时候人工的读取每个值,重新生成一个新的对象。但是若为该类添加[Serializable]特性,该类将自动具备序列化功能。.net序列化保存对象的幕后调用非常复杂,当一个对象被持久化到流时,

2016-03-19 21:44:18 276

原创 CLR线程池

1.当使用委托类型(BeginInvoke调用)进行异步方法调用的时候,CLR并不会创建新的线程。委托的BeginInvoke()方法创建了由运行时维护的工作者线程。2.System.Threading命名空间中的ThreadPool类型可以与这些线程交互。

2016-03-17 22:04:49 290

原创 Timer

1.定期的执行指定的任务,调用指定的方法。如状态栏显示时间;定期的调用方法处理后台任务等。可以使用System.Threading.Timer类和相关的TimerCallback委托。2.示例:class Program    {        static void Main(string[] args)        {            TimerCall

2016-03-17 19:53:05 195

原创 多线程

1.获取对当前线程的引用,只需要调用静态属性Thread.CurrentThread; Thread.GetDomain();//获取当前线程所在的应用程序域;Thread.CurrentContext;获取当前操作操作线程的上下文。2.几乎无法控制底层系统和CLR对线程的调度。3.原子性操作在多线程环境下总是线程安全的。通常的操作都不是原子操作,包括++i,赋值操作等。

2016-03-17 19:40:58 200

原创 进程、应用程序域、对象上下文

1.进程可以承载一组相关的.net程序集,应用程序域(AppDomain)是对该进程的逻辑细分,一个应用程序域进一步被细分为多个上下文边界;使用上下文的概念,CLR能够确保恰当的控制那些带特殊运行时要求的对象。2.每一个windows进程都恰好包含一个用作程序入口点(entry point)的主线程,线程是进程中的基本的执行单元,进程的入口点创建的第一个线程被成为主线程。主线程可以次线

2016-03-16 23:16:46 351

原创 动态类型dynamic和动态语言运行时DLR

1.动态类型与隐式申明的类型或者通过System.Object引用声明的类型有着巨大的不同,动态类型不是强类型的,对于C#编译器通过dynamic关键字声明的数据点可以分配任意初始值,而且可以在声明周期内重新分配任何新的值。public void Func3()        {            dynamic t = 1;            t = "hello";

2016-03-16 22:39:29 520

原创 .net特性

1..net平台允许程序员使用特性把更多的元数据嵌入到程序集中。特性是用于类型(类、接口、结构等)、成员(属性、方法等)、程序集或模块的代码注解。.net特性是扩展了抽象的System.Attribute基类的类类型。所有.net特性都将加上Attribute标记的后缀。 [ServiceContract]   -->[ServiceContractAttribute] 2.当

2016-03-15 22:32:08 687

原创 反射和晚期绑定

1.使用元数据完整的描述类型(接口、类、结构、委托、枚举)的能力是.net平台的一个关键要素。2.反射:是一个运行库类型发现的过程通过反射可以得到一个给定的*.dll获取*.exe程序集所包含的所有类型的列表,这个列表包含给定类型定义的方法、字段、属性和事件。主要在System.Reflection命名空间。3.System.Type类System.Type类定义了

2016-03-15 21:30:40 638

原创 对象生命周期与可终结对象

1.值类型和数据类型值类型分配在栈上面,而引用类型分配在堆上面,在栈上面存在一个空间,该空间保存堆上面的对象的地址。2.只有一个对象从代码库的任何部分都不可访问时,垃圾回收器才会从堆中删除它,将在下一次垃圾回收时发生。3..net垃圾回收器是堆的清洁工,他会压缩空的内存块来实现优化(必要时),为辅助这一行为,托管堆保存这一个指针,它精确的指示下一个对象被分配的位置。4.托管堆分配内

2016-03-14 23:23:03 388

原创 LINQ

1..net3.5引入LINQ2.隐式类型本地变量var myId = 1; var  myName = "aaaaa";许多LINQ查询返回的序列只有在编译时才能确定其数据类型,显然无法显示的声明变量,此时使用隐式类型。3.C#LINQ查询操作符是调用System.Linq.Enumerable类中方法的简便方式。这些方法通常都会使用委托作为参数。实际上也就是在使用微软已经定

2016-03-14 22:02:36 293

原创 匿名类型

1.当需要创建一个简单的遵循典型的基于值的数据类型时,并且只会被程序中少量的地方使用到,使用匿名类型可能更加的方便。2.定义一个匿名类型的时候需要使用关键字var,编译器会在编译时自动生成新的类定义,而我们无法在C#代码中看到该类的名字,初始化语法将告诉编译器为新创建的类型创建私有的后台字段和只读属性。3.对象初始化语法中定义的每一个名称/值对分别被映射为拥有相同名字的只读属性以及对应被该

2016-03-14 20:48:56 395

原创 扩展方法

1..net3.5引入扩展方法,它允许你在不直接修改原始类型的情况下为类或结构添加新的方法或属性。2.扩展方法必须声明为静态的;所有的扩展方法都需要使用this关键字对第一个参数(并且仅对第一个参数)进行修饰,用this修饰的参数表示被扩展的类。public static class Myclass4    {         //返回任何对象的完全限定名称        pu

2016-03-14 20:22:05 270

原创 操作符重载

1.二元操作符重载,通常被要求配套重载。(如>和2.C#提供operator关键字来允许自定义类型对内建操作符做出不同的反应,operator关键字只可与static关键字联合使用。3.自定义类操作符重载示例:public class Point    {        public int X { get; set; }        public int Y { get

2016-03-13 23:25:48 214

原创 索引器方法

1.C#允许构建按照标准数组方式索引的自定义类和结构,以这种方式访问子项的方法成为索引器方法。public class MyClass1    {        private ArrayList arrTest = new ArrayList();        public Object this[int index]        {            get {

2016-03-13 23:12:03 238

原创 C#匿名方法和lambda

1.C#支持内联处理事件,通过直接把一段代码语句赋值给事件(使用匿名方法),而不是构建底层委托调用的独立方法。Lambda表达式只是用更简单的方式来写匿名方法,彻底简化了对.net委托类型的使用。

2016-03-13 22:46:26 304

原创 事件

1.委托中可能存在的问题public class MyClass1    {        public delegate int FuncTest(int x, int y);  //将委托定义在使用他的类型的作用域里        public FuncTest Func1 = null;  //该委托对象设置为公有,去除注册和注销方法               publ

2016-03-11 16:44:31 277

原创 委托

1..net 委托类型用来定义和响应程序中的回调。.net委托类型是一个类型安全的对象,指向可以以后调用的其他方法。.net委托是内置支持多路广播和异步方法调用的对象。同时lamabda表达式只是匿名方法的一种,提供了一种简单的方式来使用委托。.net委托中的委托(包括自定义)都被自动赋予同步或异步访问方法的能力,可以不用手工创建与管理一个Thread对象而直接调用另一个辅助执行线程上的方法。

2016-03-11 15:23:37 353

原创 集合与泛型

1.非泛型集合的问题第一个,非泛型集合类中存储结构时,CLR必须执行大量的内存转换操作,降低运行时速度。(装箱与拆箱)第二个,集合类不是类型安全的,因为他们是为了操作System.Object类而开发的。如果.net开发者需要创建高度类型安全的集合(如某容器只能容纳实现了某个接口的对象),需要手工创建一个全新的集合类。2.装箱把值类型数据保存在引用类型变量中。显式的将值类型分配给S

2016-03-10 22:05:41 352

原创 构建可比较对象IComparable接口和IComparer接口

1.IComparable接口定义public class IComparable    {        int CompareTo(object o);    }System.IComparable接口指定了一种允许一个对象可基于某些特定键值进行排序的行为。2.示例public class MyClass6:IComparable    {

2016-03-09 21:49:50 307

原创 ICloneable接口

1.ICloneable接口定义public interface ICloneable    {        object Clone();    }2.示例public class MyClass5:ICloneable    {        public int X { get; set;}        public int Y { get; se

2016-03-09 20:49:57 427

原创 构建可枚举类型(IEnumerable和IEnumerator接口)

1.IEnumberable接口public interface IEnumberable    {        IEnumerator GetEnumerator();  //返回对另一个接口的引用IEnumerator    }2.IEnumerator接口public interface IEnumerator    {        bool Move

2016-03-08 23:19:00 242

原创 接口

1.接口就是一组抽象成员的命名集合。2.接口与抽象类虽然类定义了一组抽象成员,它完全可以在定义许多构造函数、字段数据、非抽象成员、等。但是接口,只能包含抽象成员3.接口成员不指定访问修饰符(所有的接口成员都是公共的和抽象的)。并且支持属性协议,这里和类中的属性比较如下。语法上支持自动属性的格式且支持仅只读或这只写的语法。如:int p{get;} //这个在普通类中是不允许自动属性只用

2016-03-08 22:35:05 207

原创 异常处理

1..net平台提供了一种标准的技术来发送和捕获运行时错误,结构化异常处理(SEH)。例如,如果使用C#构建WCF服务,可以向远程调用者抛出一个SOAP错误,而使用的关键字与在同一个应用中的方法之间抛出异常的关键字完全相同。同时,可以通过异常,他们包含容易读懂的问题描述信息和首次触发异常时调用栈的详细信息。2.System.Exception基类所有用户定义和系统定义的异常类都继承

2016-03-08 20:40:19 207

原创 继承和多态

1.虽然构造函数一般定义为公共的,但是派生类从来没有继承父类的构造函数。构造函数只能用于构造定义它的类。2.sealed关键字:指定该类为密封类,防止作为基类被继承。3.值类型总是密封的,不能作为基类被继承。所有结构是不能被继承的。4.在子类构造函数中使用base调用父类的构造函数 public class T1        {            public str

2016-03-07 21:53:39 177

原创

1.默认构造函数不接受参数,除了把对象分配到内存中,默认构造函数确保所有字段数据都设置为正确的默认值default(Type)。一旦定义了自定义的构造函数,默认构造函数就自动从类中移除,并且不再有效。2.this关键字进行串联构造函数调用class TestA        {            private int x;            private

2016-03-03 23:15:40 279

原创 C# 枚举与结构

枚举enum EmpType : byte  //默认为int型,部署在低内存设备中可以考虑修改存储的类型        {            Manager,            //  = 0            Grunt,              //  = 1            Contractor,         //  = 2         

2016-03-03 22:22:19 202

原创 C# 参数传递行为

参数传入函数的默认行为是按值传递,如果没有参数标记参数相关的修饰符,数据的副本就会被传入函数,到底复制什么取决于参数是值类型还是引用类型。1.static int Add(int x, int y){int ans = x + y;//数值数据(int)属于值类型,修改的是原始数据的副本x =  11111;y = 22222;}2.out修饰符:输出参数,

2016-03-03 22:19:56 285

转载 String 与StringBuilder

引用类型是在垃圾回收托管堆上分配的对象。默认情况下,当我们对引用类型进行相等性测试的时候(== || !=),如果引用类型指向内存中的相同对象,则返回true。尽管string类型是引用类型,但是相等性操作符已经被重定义为比较字符串对象的值,而不是内存中他们引用的对象。System.Text.StringBuilder 独特之处在于,当我们调用这个类型的成员时,都是直接修改对象内部的字符数据,

2016-03-03 20:10:53 274

转载 System.DateTime和System.TimeSpan

static void UseDateAndTImes(){Console.WriteLine("=> Dates and Times:");//这个构造函数接受年、月、日DateTime dt = new DateTime(2011,10,27);//他时星期几Console.WriteLine("The day of {0} is {1} ",dt.Date, dt.D

2016-03-01 23:11:48 549

转载 C# 数据类型分类

分为值类型和引用类型。值类型:继承自System.ValueType类,都会在栈上面分配,高效,包含枚举和结构;值类型支持MaxValue和MinValue字段,这两个字段说明了给定的类型可以存储的范围。引用类型:继承链上没有System.ValueType类,在堆上面分配。string类型是引用类型。

2016-03-01 23:02:06 721

转载 .Net CIL和程序集相关类容简介

尽管.net二进制文件与非托管的Windows二进制文件具有相同的文件扩展名,但他们的内部却是玩不不同的。CIL:公共中间语言,MSIL(微软中间语言)简称IL,指同一个概念。CIL是一种平台无关的语言,C# 编译器生成的CIL,并不是平台相关的指令,CIL代码必须在使用之前进行即时编译,将CIL代码编译成有意义的CPU指令的工具成为JIT(即时)编译器

2016-03-01 22:57:01 315

转载 .Net平台构造块CLR、CTS和CLS

CLR:从程序员的角度看,.net可以理解为一个运行库环境和一个全面的基础类库,CLR(公共语言运行库),其主要作用是为我们定位、加载和管理.net类型,同时负责底层细节工作,如内存管理、应用托管、处理线程、安全检查等。CTS:公共类型系统,描述了运行库所支持的所有可能的数据类型和编程结构,也规定了他们在.net元数据中的表示,一种特定的支持.net的语言可能不支持CTS所定义的所有特性。

2016-03-01 22:23:26 325

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除