12 2012 档案
文件操作
摘要:View Code 1 View Code 2 using System; 3 using System.Collections.Generic; 4 using System.ComponentModel; 5 using System.Data; 6 using System.Drawing; 7 using System.IO; 8 using System.Linq; 9 using System.Reflection; 10 using System.Text; 11 using System.Threading.Tasks; 12 usin...
阅读全文
异常处理
摘要:集合的长度看起来是可变的 ……classArrayList与Hashtable(键值对)异常处理我们将有可能发生异常的代码用Try 块包围起来//尝试执行try里的代码 一旦异常发生 发生异常的代码后面的代码不会执行 立即跳到catch块里面执行//如果try处理了异常,那么发生异常的会执行catch里的代码 执行完之后继续往下执行 程序不会推出//try其实是比较浪费性能的 只有在有可能发生异常的地方才写//文件、数据库访问等//一般情况下,如果抛出的异常是系统异常 那么谁调用谁就去捕捉异常View Code 1 using System; 2 using System.Collect...
阅读全文
字符串是不可变与StringBuilder
摘要:字符串在20121215项目中字符串是不可变的字符串的恒定性对象中的Equals方法比较的时地址,而在字符串中比的是字符串的内容字符串拘留池创建字符串之前会先在字符串拘留池找,如果找到,则会指向找到的字符串,没有则新建一个,如果是通过变量相加则会直接新建字符串。如果直接赋值创建字符串的鱼通过变量相加的字符串相同也不会指向通过变量相加的字符串,因为通过变量相加的字符串是随时可变的 //字符串是不可变的。 //字符串的恒定性... string str1 = "刘德华"; string str2 = "刘德华"; string str3 = "刘&
阅读全文
Foreach原理
摘要:Foreach原理如果要被foreach遍历,就必须要实现IEnumerable接口接口里面只有一个IEnumerator Get Enumerator()方法但这个方法的返回值要是一个实现了IEnumerator接口的对象IEnumerator接口中有一个属性 2个方法需要实现MoveNext方法是用来将指针变量下移,并且判断当前位置是否有值 如果有值返回true否则falseCurrent属性是用来获取当前指针的位置的值因为取值是在枚举器中取的,所以要将数组对象传递到枚举器中 在构造函数View Code 1 using System; 2 using System.Collecti...
阅读全文
集合ArrayList、Hashtable 、List、Dictionary、LinkedList
摘要:集合ArrayList1、 要引用system.Collections2、 ArrayList内部其实就是用1个object数组来存储数据3、 在这个类的静态构造函数中实例化了这个object’数组,长度为04、 如果第一次往这个动态数组增加元素,那么就把数组的程度为45、 如果是第二次以后扩容 那么数组的长度就是原来的2倍6、 ArrList是用object数组来存储来存数组,所以我们取值的时候 取出来的变量类型是一个object类型 需要类型转换7、 增加数据 Add方法8、 Count属性表示ArrList集合中有效元素的个数9、 Capacity属性代表items数组的长度10、 实现
阅读全文
抽象方法与虚方法
摘要:虚方法 子类可以重写也可以重写抽象方法被abstract修饰的方法叫做抽象方法,子类必须要重写父类的抽象方法,除非子类也是抽象类抽象类可以继承,如果子类继承抽象类,子类要实现父抽象类的所有抽象方法(包括父父抽象类等的抽象方法),抽象方法实现至少一次就可以啦,可以在抽象类里面是想父抽象类的抽象方法,重写之后可以再重写,调用相对最后一个抽象方法不能有方法体抽象方法必须在抽象类中快捷ctrl+. 或者在右键抽象类不能实例化,抽象类中的抽象方法没有实现,调用会出错抽象类可以与有非抽象成成员子类必须要重写的时候,每个子类的的实现方法不一样就用就用抽象方法如果要实例化父类就用虚方法抽象方法不能是priva
阅读全文
接口
摘要:接口1、接口本质就是一个特殊的抽象类2、定义规范。光说不做3、默认就是public abstract,在接口中定义方法的时候不能写访问修饰符4、接口中不能定义字段5、接口不能包含构造函数(构造函数一般是用来初始化字段的值,而接口中是没有字段的,所以不能包含结构函数)6、接口中也可以定义属性(属性本质就是方法,而在编译的时候这个属性的get set 块变成抽象方法等着类区实现,不会生成字段)7、接口是不能被实例化的,实现了接口的类必须要实现接口中所有的成员接口与抽象类的区别8、抽象类中可以有非抽象成员,接口只能定义方法属性 索引器 事件9、什么时候用抽象类,什么时候用接口A类的成员需要被继承并且
阅读全文
Equals方法、Sealed、多态
摘要:预定义类型 int i1=12等(最后转为Int32 i1=new Int32(),i1=12)基元类型:Int32等值类型继承于ValueType ---------ObjectEquals方法Equals方法是定义在Object类的一个虚方法在 Object的虚方法定义的规则的时比较对象的地址(如果想自定义,需在类中重写object’类中的虚方法)在ValueType类中重写了Equals方法,定义的规则就是比较值类型中的所有字段的值SealedSealed修饰的类叫做密封类,密封类不能被继承String 是密封类密封类中不能有虚方法,因为密封类不能被继承多态同一种行为,不同的人具有不同的
阅读全文
单例模式
摘要:52 //单例模式的实现步骤53 //1. 构造函数私有化 2.定义1个私有的静态的这个类 类型的变量54 //3. 写1个公共的 静态的 方法 返回这个类的对象的引用55 // 判断静态字段是否是null 如果是null 就new1个 否则直接返回View Code 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 6 namespace SingleDemo 7 { 8 ...
阅读全文
枚举、结构体、数组和集合
摘要:部分是转载枚举、结构体、数组和集合一、值类型 C#支持两种值类型:枚举和结构1.1 枚举(enum) 1)和所有值类型一样,枚举可以使用?修饰符来创建一个可空的枚举变量,如:Season? colorful=null; 2)可以指定枚举的类型,如: enum Season{spring=1,summer,fall,winter}可以,也可以像下面这样声明: enum Season:short{spring,summer,fall,winter} 一种枚举看可以基于8种整数类型的任何一种:byte,sbyte,short,ushort,int,uint,long或者ulong 1.2...
阅读全文
.net/c#中栈和堆的区别及代码在栈和堆中的执行流程详解之一
摘要:转载http://www.cnblogs.com/jakeshi/archive/2008/04/16/1156010.html.net/c#中栈和堆的区别及代码在栈和堆中的执行流程详解之一原文出处:http://www.c-sharpcorner.com/UploadFile/rmcochran/csharp_memory01122006130034PM/csharp_memory.aspx尽管在.NET framework下我们并不需要担心内存管理和垃圾回收(Garbage Collection),但是我们还是应该了解它们,以优化我们的应用程序。同时,还需要具备一些基础的内存管理工作机制的
阅读全文
对象初始化器宇构造函数
摘要:View Code 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 6 namespace Demo001 7 { 8 class Program 9 {10 static void Main(string[] args)11 {12 #region MyRegion13 //Person p = new Person();14 ...
阅读全文
属性与字段
摘要:属性与字段转载字段可以有静态的,但是属性必须是实例的其实有些属性能实现的功能,字段也能实现,但是不鼓励用字段来实现,因为OOP和编程的一个原则就是数据封装,意味着我们不应该将字段的类型以公开的方式提供给外界。还有一些原因,例如我们可能希望访问一个字段的同时执行一些额外的操作,或者缓存某个数值,或者延迟创建某个内部对象。我们也可能希望对字段的访问是线程安全的。或者字段可能只是一个逻辑表示,其真正的值并不是以字节的形式存放在内存中,而是通过某种算法计算得来的所以建议将所有的字段访问限制为私有 主题:这篇文章我来说下属性(Properties)和字段在C#中的关系。首先申明一下,这里讲的属性就是通常
阅读全文
ref和out的区别
摘要:ref和out的区别在C# 中,既可以通过值也可以通过引用传递参数。通过引用传递参数允许函数成员更改参数的值,并保持该更改。若要通过引用传递参数, 可使用ref或out关键字。ref和out这两个关键字都能够提供相似的功效,其作用也很像C中的指针变量。它们的区别是:1、使用ref型参数时,传入的参数必须先被初始化。对out而言,必须在方法中对其完成初始化。2、使用ref和out时,在方法的参数和执行方法时,都要加Ref或Out关键字。以满足匹配。3、out适合用在需要retrun多个返回值的地方,而ref则用在需要被调用的方法修改调用者的引用的时候。注:在C#中,方法的参数传递有四种类型:传值
阅读全文
C#函数可变参数的使用
摘要:转载C#函数可变参数的使用一般情况下,函数中参数是确定的。但是在某些情况下,函数的参数个数可以根据需要改变而改变,可变参数的函数使用方法是在参数前加params。以下是我的一个demo:View Code 1 查看代码 2 using System; 3 using System.Collections.Generic; 4 using System.Linq; 5 using System.Text; 6 7 namespace demo 8 { 9 class Program10 {11 static void Vfunc(param...
阅读全文
里氏替换原则、装箱与拆箱
摘要:里氏替换原则子类可以替换父类的位置,并且程序的功能不受影响因为父类有的成员 子类对象都有,所以程序的功能不受影响1、父类变量指向子类对象2、当父类变量指向子类对象的时候 通过这个变量来调用同名的方法的时候,会调用父类的同名方法,,上图中的类型指针指的时父类的方法表,而这个指针是由变量的类型决定,上图中Person p类型是Person,所以指向Person的方法表3、当1个父类变量指向子类的对象的时候,只能通过这个父类的对象调用父类对象的成员,子类对象独有的成员调用不到,为了多态注:Student s2=new Person()(不行,不符合自动转换条件:数据类型兼容,目标类型大于源类型),但
阅读全文
值类型与引用类型
摘要:类的修饰符:public internal(默认的访问修饰符)Public :所有地方都可以访问Internal:只能在程序集中访问(程序集指的是.net平台编译的dll 或exe文件叫做程序集.net编译原理:源代码(cs文件)-------编译(可在控制台用csc来手动编译)----------运行这个程序集的时候,.net平台中的CLR(公共语言运行时)的JIT(即时编译器)会将程序集翻译成CPU指令(二进制代码)类里面的成员:1、字段 2属性 3方法 4构造函数…执行代码只能写在方法中.对象是根据类的模版创建的同一个类的多个对象之间没有一丝关系,唯一的关系就是他们都是根据同一个模版创建
阅读全文
如何深入理解string
摘要:以下内容为转载http://jingyan.baidu.com/article/db55b6094c633c4ba30a2f23.html在学习C#时,string类是常用的类型之一,string类是我们基本上每个程序中都会使用到的字符串类型。这篇文章介绍更多的关于C#中string字符串如何使用各种处理数据的方法。工具/原料Visual Studio 2010编程工具步骤/方法string类字符串常用的处理方法有哪些:在C#中经常使用string的处理方法处理数据。分析下面的问题,看如何使用上面的字符串方法处理问题。分析需求,根据需求使用不同的字符串方法。我们来看下分析的步骤:String截
阅读全文
String 类使用的几个方法
摘要:String 类提供的成员执行以下操作:比较 String 对象;返回 String 对象内字符或字符串的索引;复制 String 对象的值;分隔字符串或组合字符串;修改字符串的值;将数字、日期和时间或枚举值的格式设置为字符串;对字符串进行规范化。使用 Compare、CompareOrdinal、CompareTo、Equals、EndsWith 和 StartsWith 方法进行比较。使用 IndexOf、IndexOfAny、LastIndexOf 和 LastIndexOfAny 方法可获取字符串中子字符串或 Unicode 字符的索引。使用 Copy 和 CopyTo 可将字符串或子
阅读全文
.net语音
摘要:第一步:应用COM Microsoft Speech Object Library第二部:调用 SpVoice mysp = new SpVoice(); mysp.Speak("老王很帅");
阅读全文
窗体传值三种方法
摘要:窗体一:View Code 1 using System; 2 using System.Collections.Generic; 3 using System.ComponentModel; 4 using System.Data; 5 using System.Drawing; 6 using System.Linq; 7 using System.Text; 8 using System.Threading.Tasks; 9 using System.Windows.Forms;10 11 namespace ChuangTi12 {13 public partial clas...
阅读全文
继承
摘要:继承1、父类的所有成员都是子类必须的,只要有一个不是子类想要的就不存在继承关系2、C#里面的类只能有一个父类 单根性3、类继承具有传递性 传递性4、C#里面的类默认直接或者间接继承于Object类5、创建子类对象的时候先调用子类的构造函数 再调用子类的构造函数6、子类的构造函数默认调用父类的无参数构造函数7、base关键字代表父类对象8、this关键字代表当前对象9、base显示调用父类成员10、当子类对象中有和父类相同的成员的时候,子类对象的同名尘缘会覆盖父类中的同名成员11、new显式的隐藏父类成员12、子类的访问级别不能比父类高Person类 1 using System; 2 us..
阅读全文
垃圾回收与静态成员
摘要:垃圾回收与静态成员1、栈空间的变量一旦声明,出作用域的时候就会被回收2、堆里空间的对象,没有任何变量指向这个对象的时候就会被回收,这个对象被标记为“垃圾对象”等待回收GC(垃圾回收器——CLR)3、GC是只回收堆空间,检查定时回收(频率由CLR决定)检查堆空间中有标记为“垃圾对象”的空间就回收4、GC.Collect();//叫垃圾回收器回来回收垃圾(必须等GC处理完目前的任务,才来处理该任务)析构函数1、波浪号+类的名字(没有参数 没有访问修饰符 没有返回值)2、析构函数在对象被回收的时候被回收,被GC回收的时候,析构函数被GC自动调用,程序员不能调用3、析构函数一般用于处理善后工作4、析构
阅读全文
浙公网安备 33010602011771号