2012年6月26日

C#定义属性-只读属性

摘要: 只有get访问器的属性为只读属性,此属性不定义set访问器。语法如下:<访问修饰符> 数据类型 属性名{get{}}定义了只读属性,就只能通过该属性取值,而不能赋值。private int _age;public int Age{get{ return _age;} 阅读全文

posted @ 2012-06-26 13:24 流星落 阅读(1478) 评论(0) 推荐(0)

C#属性简介

摘要: 我们知道,类成员包括变量和方法。如果希望其他类能够访问成员变量的值,就必须定义成公有的,而将变量设为公有public,那这个成员变量的就可以被任意访问(包括修改,读取),这样不利于数据安全。那怎么办呢?C#通过属性特性读取和写入字段(成员变量),而不直接直接读取和写入,以此来提供对类中字段的保护。属性可用于类内部封装字段。属性是C#面向对象技术中封装性的体现。注意:字段就是类的成员变量,为配合属性而这样称呼的。属性和字段的区别: 属性是逻辑字段;属性是字段的扩展,源于字段;属性并不占用实际的内存,字段占内存位置及空间。 属性可以被其它类访问,而大部分字段不能直接访问。属性可以对接收的数据范围作 阅读全文

posted @ 2012-06-26 13:23 流星落 阅读(238) 评论(0) 推荐(0)

C#定义属性-读写属性

摘要: 通常属性包括get{}访问器和set{}访问器。get{}访问器用来返回相应的私有字段的值,用return来返回。set{}访问器用来设定相应字段的值,相当于一个隐含的输入参数,采用value来赋值。读写属性:读写属性是同时包括get访问器和set访问器的属性,get访问器定义对数据访问,set访问器定义对数据的读取。语法如下:<访问修饰符> 数据类型 属性名{get{}set{}}private string _name;public string Name{get{ return _name;}set{ _name = value;}通俗的讲,具有读写属性的字段,可以通过属性赋 阅读全文

posted @ 2012-06-26 13:23 流星落 阅读(942) 评论(0) 推荐(0)

C#中this关键字的使用

摘要: 保留字this仅限于在构造函数、类的方法和类的实例中使用,它有以下含义:●在类的构造函数中出现的this作为一个值类型,它表示对正在构造的对象本身的引用。●在类的方法中出现的this作为一个值类型,它表示对调用该方法的对象的引用。●在结构的构造函数中出现的this作为一个变量类型,它表示对正在构造的结构的引用。●在结构的方法中出现的this作为一个变量类型,它表示对调用该方法的结构的引用。除此之外,在其它地方使用this保留字都是不合法的。比如在一个AAA类里有一个aaa的变量在这个AAA类中调用这个aaa变量就可以用this.aaa如果是在别的类中就要实例化一个对象来调用这个变量AAA a= 阅读全文

posted @ 2012-06-26 13:22 流星落 阅读(214) 评论(0) 推荐(0)

C#中的结构体要使用new来实例化吗?

摘要: 声明结构的默认(无参数)构造函数是错误的。总是提供默认构造函数以将结构成员初始化为它们的默认值。在结构中初始化实例字段也是错误的。如果使用 new 运算符创建结构对象,则会创建该结构对象,并调用适当的构造函数。与类不同,结构的实例化可以不使用 new 运算符。如果不使用 new,则在初始化所有字段之前,字段都保持未赋值状态且对象不可用。结构类型使用new不会分配托管堆分配内存而是调用构造函数初始化字段。结构的构造函数要么是有参数的,不可能是无参数,应为无参数是系统自己隐式添加的,就算有另外的构造函数,如果你显示的声明一个无参数的构造函数在结构里,将导致编译错误。结构体如果不用new初始化,也可 阅读全文

posted @ 2012-06-26 13:20 流星落 阅读(2241) 评论(0) 推荐(0)

C#数据类型-结构类型

摘要: 有时我们可能对同一事物使用多个不同的变量来描述,如果将其分开来,显得不够灵活。结构类型很好的解决了这个问题,它把多个不同的变量组织在一起。结构和类有很多相同的地方,结构可以看成一个轻量的类。结构使用struct关键字定义。其定义方法如下:struct 结构名称 { 成员声明列表; }成员可以包含构造函数,常数,字段,方法,属性,索引器,运算符和嵌套类型等。每个成员在声明的时候都采用如下的格式:访问修饰符 类型 名称;using System;struct Teacher{public string Name; // 老师姓名public uint Age; // 老师年龄public stri 阅读全文

posted @ 2012-06-26 13:19 流星落 阅读(632) 评论(0) 推荐(0)

C#构造函数的重载

摘要: C#中的构造函数也可以应用方法重载。C#中有默认构造函数,也可以定义带参数的构造函数。构造函数必须与类同名,并且不能有返回值。所以C#构造函数重载相当于不同数量的参数方法重载。using System;class Animal{public string _name;public string _color;public int _speed;public Animal(){ this._speed = 30;}public Animal(string name, string color){ this._name = name; this._color = color;}public Ani 阅读全文

posted @ 2012-06-26 13:18 流星落 阅读(1137) 评论(0) 推荐(1)

C#方法参数个数和类型相同,名称不同,可以实现重载吗

摘要: 比如说:(1)public void add(int i){}(2)public void add(int i,int j){}(3)public void add(int a){}(4)public void add(double i,int j){}1和2算重载因为那个数不同。2和4也算重载因为类型不同。那1和3算不算重载?他们的名字不同??这不能通过编译。因为1和3本质是一样的两个方法,参数的名称本质只是在方法内部的一个变量的标识,重载只与参数类型和参数个数有关。如果有多个参数,那么如果这些参数的类型不同就要考虑参数位置了。例如:public void print(int a,Strin 阅读全文

posted @ 2012-06-26 13:17 流星落 阅读(980) 评论(0) 推荐(0)

C#方法重载-基于不同类型的参数的方法重载

摘要: using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ConsoleApplication7{ class Test { static void Main(string[] args) { Test ts = new Test(); Console.WriteLine("两个数最大的数是:{0}",ts.MaxNum(12, 33)); Console.WriteLine("三个数最大的数是:{0}", ts.MaxNum(1 阅读全文

posted @ 2012-06-26 13:16 流星落 阅读(467) 评论(0) 推荐(0)

C#只能靠参数而不能靠返回值类型的不同来区分方法重载

摘要: 重载必须要用参数来区分,传入不同参数,可以实现重载。可以这样理解,你调用一个方法,如果有多个方法同名,系统必须要知道到底你要调用哪一个,参数可以帮助系统在方法入口处得到答案,他根据你给的参数就知道该将哪个方法的入口调入栈中。如果只有返回值的不同,很多情况系统是不可能得到有效的判断条件的。比如:string method(); int method();上面两个方法,第一个返回字符串类型值,第二个的返回值是整数类型。如果你这样调用:method();在这种情况下,编译器和程序员都不知道哪个method方法被调用。 阅读全文

posted @ 2012-06-26 13:16 流星落 阅读(880) 评论(0) 推荐(0)

C#方法重载-基于不同数量的参数的方法重载

摘要: 在日常生活中,有些行为具有相同的名称,但是可以执行不同的操作,我们经常去商场买东西,虽然都是购物,每次执行这个任务时购买的物品,付款多少,购买过程都是不同的,所以虽然任务相同,但每次处理的数据是不同的。在C#中用重载方法执行类似功能。方法重载的定义:多个方法具有相的的名称,但是对不同数据执行相似的过程。C#中的方法重载包括基于不同数量的参数方法重载和基于不同类型的参数方法重载。1、基于不同数量的参数的方法重载using System;class Class1{int numberone(int num1, int num2){ Console.WriteLine("{0}和{1}中较 阅读全文

posted @ 2012-06-26 13:14 流星落 阅读(1524) 评论(0) 推荐(0)

C#静态方法不能使用this关键字

摘要: 实例方法比静态方法多传递一个隐含的指针参数,该指针指向该方法所从属的已被实例化的对象。这一区别的外在表现为实例方法内可使用this关键字代表所从属的实例对象,而静态方法不可使用this因为静态方法不针对任何实例对象。实例对象调用静态方法会因参数中多出一个指向自己的指针(this)而发生错误。 定义静态方法只需加注static关键字即可。静态方法独立于对象实例之外,与对象是否已被实例化无关,调用静态方法要用类定义的名称而不能用实例名称如: class a { ... public static void b(){}//静态方法 public void d(){}//实例方法 } a c = ne 阅读全文

posted @ 2012-06-26 13:12 流星落 阅读(886) 评论(0) 推荐(0)

c#静态方法不可以直接调用实例方法

摘要: 静态方法是一种特殊的成员方法,它不属于类的某一个具体的实例。非静态方法可以访问类中的任何成员,而静态只能访问类中的静态成员。看这个例子:class A{int x;static int y;static int F(){x=1; //错误,不允许访问y=2; //正确,允许访问}在这个类定义中,静态方法F()可以访问类中静态成员y,但不能访问非静态成员x。这是因为,x作为非静态成员,在类的每个实例中都占有一个存储(或者说具有一个副本),而静态方法是类所共享的,它无法判断出当前的x是属于哪个类的实例,所以不知道应该到内存的哪个地址去读取当前x的值。而y是静态成员,所有类的实例都公用一个副本,静态 阅读全文

posted @ 2012-06-26 13:11 流星落 阅读(1253) 评论(0) 推荐(0)

C#静态方法

摘要: 静态方法与静态变量一样,属于类本身,而不属于那个类的一个对象。要想调用一个被定义为static的方法,必须在它前面加上这个类的名称。其中static关键字即表示静态的。声明静态方法的语法如下:<访问修饰符> static 返回类型 方法名(参数列表){//方法体}静态方法与实例方法唯一不同的,就是静态方法在返回类型前加static关键字。静态方法的调用语法如下:类名.静态方法名(参数值);我们在使用时要注意:静态方法只能访问类的静态成员,不能访问类的非静态成员;非静态方法可以访问类的静态成员,也可以访问类的非静态成员;静态方法不能使用实例来调用,只能使用类名来调用。using Sy 阅读全文

posted @ 2012-06-26 13:06 流星落 阅读(574) 评论(0) 推荐(0)

C#静态变量

摘要: 在C#程序中,没有全局变量的概念,这意味着所有的成员变量只有该类的实例才能操作这些数据,这起到了“信息隐藏”的作用。但有些时候,这样做却不是个明智的选择。假设我们要定义一个图书类,要求该类能保存图书的数量,即每增加一本图书(定义一个实例),图书的数量应该加1。如果没有静态变量,我们需要将图书的数量保存在每本图书(实例)里,然而,这样的变量要在不同图书(实例)里重复存储,图书(实例)数量少的话,我们还能接受,如果图书(实例)数量较多的话,比如成千上万,我们无法想象这要造成多少资源(如内存、磁盘空间)的浪费,更让人无法忍受的是:因为图书(实例)的数量要保存在每本图书(实例)里,该值肯定是不同的。要 阅读全文

posted @ 2012-06-26 13:04 流星落 阅读(596) 评论(0) 推荐(0)

C#类方法中使用数组参数params关键字的作用

摘要: 参数数组(params)关键字可以指定在参数数目可变处采用参数的方法参数。在方法声明中的 params 关键字之后不允许任何其他参数,并且在方法声明中只允许一个 params 关键字。先定义一个带有参数数组的方法:public void UseParams(params int[] list) { for (int i = 0 ; i < list.Length; i++) { Console.Write(list[i] + " "); } Console.WriteLine(); }可通过以下两个方法调用:① UseParams(1,2,3)② int[] myar 阅读全文

posted @ 2012-06-26 13:03 流星落 阅读(354) 评论(0) 推荐(0)

C#方法参数传递-输出参数out关键字

摘要: out 关键字会导致参数通过引用来传递。这与 ref 关键字类似,不同之处在于 ref 要求变量必须在传递之前进行初始化,out关键字不要求调用代码前对传递的参数进行初始化,也可以实现引用传递。若要使用 out 参数,方法定义和调用方法都必须显式使用 out 关键字。采用这种方法调用代码时,就可看到修改后的值。输出参数(Out Parameter)格式:方法名称(out 参数类型 参数名称[,out 参数类型 参数名称])using System;class OutExample{ static void Method(out int i) { i = 44; } static void Ma 阅读全文

posted @ 2012-06-26 13:02 流星落 阅读(679) 评论(0) 推荐(0)

C#方法参数传递-同时使用ref和out关键字

摘要: 在方法参数传递中,可以同时使用ref和out关键字,但是要注意ref和out参数传递的不同。using System;class Program{static void Main(){ Program obj = new Program(); int score = 55; //声明原来分数 int refscore, outscore; //声明两个变量 obj.ChangeScore(score, ref refscore, out outscore); Console.WriteLine("您原来的分数是{0},调整后的分数为{1},加平时表现分后{2}", scor 阅读全文

posted @ 2012-06-26 13:02 流星落 阅读(3205) 评论(0) 推荐(0)

C#方法参数传递-引用参数ref关键字

摘要: 引用传递好比你把文件在网络上的地址告诉他人,他人通过网络访问你计算机的文件,他可以对文件进行修改并保存,此时,文件的内容就会发生变化。引用传递在方法调用之后,可以保留参数值的修改。要实现引用传递,C#通过ref关键字和out关键字来实现。引用参数(Reference Parameter )格式:方法名称(ref 参数类型 参数名称[,ref 参数类型 参数名称])ref 关键字使参数按引用传递。其效果是,当控制权传递回调用方法时,在方法中对参数的任何更改都将反映在该变量中。若要使用 ref 参数,则方法定义和调用方法都必须显式使用 ref 关键字。using System;class Prog 阅读全文

posted @ 2012-06-26 13:01 流星落 阅读(1009) 评论(0) 推荐(0)

C#方法参数传递-值传递

摘要: c#常用的参数传递有两种方式:值传递和引用传递。什么是值传递呢?就是把参数值放在方法中,在方法中对参数值做了修改,但是在方法调用之后,参数值还是原来的值。值传递好比把文件复制一份,通过网络传给别人,然后他可以在他的计算机上对文件做各种修改,修改会保存下来,但是你的计算机上的文件不会发生任何变化。值传递参数(Value Parameter )格式:方法名称(参数类型 参数名称[,参数类型 参数名称])using System;class Program{static void Main(string[]args){ int num1 = 4; int num2 = 8; Console.Writ 阅读全文

posted @ 2012-06-26 13:00 流星落 阅读(734) 评论(0) 推荐(0)

C#中return语句的使用方法

摘要: C#中return语句的使用方法return语句终止它所在的方法的执行,并将控制权返回给调用方法,另外,它还可以返回一个可选值。如果方法为void类型,则可以省略return语句。return语句后面可以是常量,变量,表达式,方法,也可以什么都不加。return语句可以出现在方法的任何位置。一个方法中也可以出现多个return,但只有一个会执行。当return语句后面什么都不加时,返回的类型为void。下面代码演示retrun语句:return 1;return a;return a+b;return Add(a+b);return;下面编写方法计算长方形面积:用构造函数初始化对象,输出计算结 阅读全文

posted @ 2012-06-26 12:59 流星落 阅读(5176) 评论(0) 推荐(0)

C#方法的调用

摘要: C#方法调用步骤如下:1、实例化方法的类,创建对象。Dog objdog=new Dog();2、用对象名.方法名(参数)调用方法objdog.方法名(参数);方法调用实例一:在一个类中编写两个整型数据相加,返回和的方法,在另一个类中调用该方法。using System;class Accept{public int Add(int a, int b){ return a + b;}public void Show(int sum){ Console.WriteLine("两个数相加的和为{0}", sum);}}class Program{static void Main 阅读全文

posted @ 2012-06-26 12:58 流星落 阅读(688) 评论(0) 推荐(0)

C#析构函数-销毁对象

摘要: 析构函数和构造函数刚好相反,构造函数在创建对象时使用,而析构函数在销毁对象时使用。程序中每次创建一个对象都要占有一定的系统资源,实时销毁无用的对象,释放资源才能够保证系统的运行效率。C#中运用垃圾回收器来实现这个功能。当应用程序中的对象失去作用时,垃圾回收器自动调用析构函数释放资源。声明析构函数的语法如下:~<类名>(){ // 析构函数的主体 }使用析构函数时要注意以下几点:析构函数声明方式与构造函数的相同只是在类名前加个(~)符号。一个类只能有一个析构函数。析构函数不能继承和重载。析构函数不能显式或手动调用,只有在该类被销毁的时候调用。析构函数不接受任何参数,不带任何访问修饰符 阅读全文

posted @ 2012-06-26 12:57 流星落 阅读(1025) 评论(0) 推荐(0)

C#方法

摘要: C#的主要成员除了成员变量之外,还有方法。方法用来描述对象的行为,由一组完成特定功能的语句组成。方法是程序设计的组成元素,没有方法的程序是没有意义的。Main()函数,就是C#提供的方法。方法的声明C#中声明方法的语法如下:<访问修饰符> 返回类型 方法名(参数列表){//方法体}1、访问修饰符:方法的访问修饰符和成员变量的访问修饰符相同。方法名称前没有任何访问修饰符时,系统默认为private类型。2、方法返回值:定义方法的目的是完成一定的功能。定义好的方法提供给别人来调用,调用后就会有一个结果产生,那个结果就是方法的返回值。方法的返回值类型可以是任意数据类型,也可以是对象类型, 阅读全文

posted @ 2012-06-26 12:57 流星落 阅读(218) 评论(0) 推荐(0)

C#带参数的构造函数

摘要: 构造函数可以没有参数,也可以包含一个以上的参数,带参数的构造函数用于初始化成员变量,在实例化类时完成初始化的过程。其语法如下:class 类名{<访问修饰符> 类名 (参数列表){//构造函数主体}}访问带参数的构造函数如下:类名 对象名=new 类名(参数值);using System;class Dog{public string type;public string color;public Dog(string strtype, string strcolor){ this.type = strtype; this.color = strcolor;}}class Prog 阅读全文

posted @ 2012-06-26 12:56 流星落 阅读(3267) 评论(0) 推荐(0)

C#不同类型的成员变量(字段)的默认值

摘要: 创建类的一个实例时,在执行构造函数之前,如果你没有给成员变量赋初始值,C#编译器缺省将每一个成员变量初始化为他的默认值。如果变量是方法的局部变量,编译器就会认为在使用该变量之前,代码必须给它显示的设定一个值。否则会发生“使用了未赋值的局部变量”的错误。对于其他情况,编译器会在创建变量时,把变量初始化为默认值。1、对于整型、浮点型、枚举类型(数值型),默认值为0或0.0。2、字符类型的默认值为\x0000。3、布尔类型的默认值为false。4、引用类型的默认值为null。如果声时变量时,为它指定了初始值(int i=10;),那么这个值就用于初始化该变量了。虽然C#编译器为每个类型都设置了默认类 阅读全文

posted @ 2012-06-26 12:55 流星落 阅读(1481) 评论(0) 推荐(0)

C#构造函数-创建对象

摘要: 构造函数(constructor)用于执行类的实例的初始化。每个类都有构造函数。C#中通过new关键字创建对象的过程其实就是通过new关键字调用类的构造函数的过程。创建对象时,必须调用构造函数,如果没有定义构造函数,系统会提供一个默认的构造函数。在访问一个类的时候,系统将最先执行构造函数中的语句,任何构造函数的执行都隐式的调用了系统提供的默认构造函数base(),可以有参数,也可以没有。有参数的时候,类在实例化的时候必须传递参数。构造函数是类中的特殊方法,C#使用构造函数来初始化变量。创建构造函数的语法如下:class 类名{<访问修饰符> 类名(){//构造函数主体}}构造函数的 阅读全文

posted @ 2012-06-26 12:52 流星落 阅读(1314) 评论(0) 推荐(0)

C#实例化类的详细介绍

摘要: 我们定义一个类后,就必须实例化才给使用。实例化就是创建一个对象的过程。在C#中,我们使用new运算符关键字来创建。类 对象=new 类();即 class object=new class();这样就生成了一个对象。比如有一个类叫汽车。你现在想在程序中买一辆,所以你用new来买了一辆汽车,这辆车你得给你找个名字,比如宝马。呵呵所以就成汽车 宝马 = new 汽车你有钱了,你要再来一辆:汽车 奔驰 = new 汽车 但他们都有汽车该有的东西:四个轮子,一个方向盘,发动机,车门。所以都是汽车一类的东西。C#的本质,可以这样表达,c#所有东西全都是类,一个继承另一个,子类继承父类。 连string. 阅读全文

posted @ 2012-06-26 12:51 流星落 阅读(6728) 评论(1) 推荐(1)

C#中对象的声明和使用

摘要: 类和对象是密不可分,有类就有对象。有对象就有类,世界万物都可以看作对象。用面向对象的思想解决问题,就要把一切都看成对象。对象是不能脱离类存在的。类是对象共同拥有的属性的描述,由对象归纳成类,对象是类的具体体现。如汽车是一个类,而具体到某个人的车就是对象。在C#中,所有的东西都可以看作对象。把一个东西看成对象,我们就可以孤立的去审查它的性质,它的行为,进而研究和其他对象的关系。同样,在程序中使用对象的概念,就让我们把一个程序看成是很多对象相互作用的结果。对象必须建立在类的基础上,声明一下对象也就是类的实例化过程。对象是类的具体化的体现。我们创建一个教师类classs Teacher { publ 阅读全文

posted @ 2012-06-26 12:47 流星落 阅读(4270) 评论(1) 推荐(0)

C#访问修饰符

摘要: 所有类型和类型成员都具有可访问性级别,用来控制是否可以在您程序集的其他代码中或其他程序集中使用它们。您在声明类型或成员时使用以下访问修饰符之一来指定其可访问性:public :访问不受限制。可以类内和任何类外的代码中访问。private: 可以被所属类访问。只有同一类或结构中的代码可以访问该类型或成员。protected :可以被所属类其派生类访问。只有同一类或结构或者派生类中的代码可以访问该类型或成员。internal :可以被当前程序集访问。同一程序集中的任何代码都可以访问该类型或成员,但其他程序集中的代码不可以。protected internal :同一程序集中的任何代码或其他程序集中 阅读全文

posted @ 2012-06-26 12:46 流星落 阅读(229) 评论(0) 推荐(0)

C#类的成员变量

摘要: 类的声明中类的主体代码通常包含类的成员变量和成员方法.声明成员变量的语法如下:<访问修饰符> 数据类型 成员变量;成员变量命名规范如下:如果是公共成员变量、受保护的成员变量、内部成员变量,使用骆驼命名法,如name,gender等。如果是私有成员变量,使用骆驼命名法,并以下划线开头。如_age,_score等。例如:下面代码声明一个Student类,类中包含私有成员变量,_name,_score,_subject,_gender。class Strdent{private string _name; //姓名private string _score; //分数private st 阅读全文

posted @ 2012-06-26 12:44 流星落 阅读(2434) 评论(0) 推荐(0)

C#中类的声明

摘要: 类就是用class来声明的。class的语法如下:<类的访问修饰符> class 类名{//类的主体}除class关键字和类名外,访问修饰符是可选项。下面以汽车为例声明一个类,代码如下:public class Car{//汽车属性和方法}类命名要遵循的编码规则:类命名应该采用帕斯卡命名法,即首字母大写。通常命名类采用完整的英文单词,如Book,Car,Teacher等。都属于命名规范的类名。我们熟悉的汽车除具有品牌,颜色,性能等特征外,还具有能够行驶等动作。汽车的颜色,品牌等特征叫Car类的成员变量,而能够行驶等动作叫做Car的方法。 阅读全文

posted @ 2012-06-26 12:42 流星落 阅读(761) 评论(0) 推荐(0)

C#是面向对象编程语言

摘要: C#是纯粹的面向对象编程语言,它真正体现了“一切皆为对象”的精神。在C#中,即使是最基本的数据类型,如int,double,bool类型,都属于System.Object类型。此外,使用C#编程,不会存在与游离于对象之外的属于过程的东西。这个世界是由什么组成的?这个问题如果让不同的人来回答会得到不同的答案。如果是一个化学家,他也许会告诉你“还用问嘛?这个世界是由分子、原子、离子等等的化学物质组成的”。如果是一个画家呢?他也许会告诉你,“这个世界是由不同的颜色所组成的”。……呵呵,众说纷纭吧!但如果让一个分类学家来考虑问题就有趣的多了,他会告诉你“这个世界是由不同类型的物与事所构成的”。好!作为 阅读全文

posted @ 2012-06-26 12:07 流星落 阅读(809) 评论(0) 推荐(0)

C#中类的概念

摘要: 面向对象编程技术中最重要的概念就是类和对象,那么到底什么是类?在编程中应如何运用?类(Class)实际上是对某种类型的对象定义变量和方法的原型。它表示对现实生活中一类具有共同特征的事物的抽象,是面向对象编程的基础。简单地说,类是一种抽象的数据类型,是对一类对象的统一描述。在生活中,常常把一组具有相同特性的事物归为一类,当然根据分类的标准不同,划分的类也是不相同的。汽车和人都是独立的类,它们都有各自的特点。汽车这个大类还可以分为卡车,公共汽车,和小轿车等各种小类。人可以分为男人和女人。将这些思想反映在编程技术中就产生了类的概念。类是对象概念在面向对象编程语言中的反映,是相同对象的集合。类描述了一 阅读全文

posted @ 2012-06-26 12:07 流星落 阅读(1707) 评论(0) 推荐(0)

类和对象的关系

摘要: 类是具有相同数据结构(属性)和相同操作功能(行为)对象的集合。对象就是符合某种类所产生的一个实例。对象与类的关系是:对象的共性抽象为类,类的实例化就是对象。类是一个抽象的概念,而对象是具体的,比如说车是一个类的话,张三的那辆奔驰车就是车这个类的一个实例,动物是一个类的话,李四的家养的那只猫就是动物类的一个对象实例。人类就是一个类,这个类包含了所有人的共同属性,像有四肢,有名字,会说话等等。而实例就是这个人类的具体实现,比如叫张三的这个人就是人类的一个实例,张三有着人类的所有属性。张三是人类的一个实例,同样李四也是人类的一个实例,但是张三和李四是不同的,因为他们是人类的两个不同的实例。一个对象是 阅读全文

posted @ 2012-06-26 12:06 流星落 阅读(450) 评论(0) 推荐(0)

从日常生活中看对象

摘要: 其实对象这个名次对我们来说一点也不陌生,因为我们的日常生活中。随处可见的都是对象,小到地上的一粒沙,大到中国的万里长城,埃及的金字塔,所有的东西都是对象(万物皆对象)我们之所以会对对象这个词比较陌生,是因为我们平时不直接这么称呼它们,那么我们平时是怎么称呼这些对象呢?通常我们会以这个对象分类的名称来称呼它,例如路上有许多车子,天空有许多鸟,这里的车子,鸟都只是一种对象的分类而已,而这些分类我们习惯称为类。所以世界上有许多的车类,鸟类,鱼类等。那么对象和类之间有什么关系呢?对象就是附合某种类定义所产生出来的实例,而不是一个类。类只是个抽象的称呼,而对象是个看得到,摸的到,听得到的实例。可有些时候 阅读全文

posted @ 2012-06-26 11:59 流星落 阅读(238) 评论(0) 推荐(0)

C#格式化字符串

摘要: DataFormatString属性:{0:Bxx} B为取值类型格式字符 说明 C 以货币格式显示数值。 ({0:C2}¥123,456.78)D 以十进制格式显示数值。 ({0:D5}¥00123)E 以科学记数法(指数)格式显示数值。 F 以固定格式显示数值。 G 以常规格式显示数值。 N 以数字格式显示数值。 X 以十六进制格式显示数值。字符串固定长度显示:str.PadLeft(Int32) str.PadLeft(Int32, Char) OR PadRight int32:totalWidth Char:填补字符默认为空格,可指定如'#'例: float mone 阅读全文

posted @ 2012-06-26 11:57 流星落 阅读(312) 评论(0) 推荐(0)

C#字符串的简单用法

摘要: 下面的代码实现的功能:输入Email邮箱,获取邮箱的用户名。输入带空格的字符串,分割并连接。输入大写英文字母转换为大写。using System;class Program{static void Main(){string strname;string inputStr;string[] splitString;string joinString;string strEnglish;string email;Console.WriteLine("请输入您的邮箱");email=Console.ReadLine().Trim();Console.WriteLine(&quo 阅读全文

posted @ 2012-06-26 11:54 流星落 阅读(238) 评论(0) 推荐(0)

C#字符串的使用

摘要: 一、标记标记(tokenizing)是从文本中提取具体内容的过程。下面的代码从句子中提取单词,并把它们输出到控制台。class mytokenizing{ static void Main(string[ ] args) { string mystring="I like this food,are you?"; char[] separators={' ',',','?',':','!'}; int startpos=0; int endpos=0; do { endpos=mystring. 阅读全文

posted @ 2012-06-26 10:49 流星落 阅读(285) 评论(0) 推荐(0)

c#中处理字符串常用的函数及方法详细说明

摘要: 一、string关键字与StringBuilder类C# 字符串是使用 string 关键字声明的一个字符数组。字符串是使用引号声明的,如下例所示:string s = "Hello, World!";字符串对象是“不可变的”,即它们一旦创建就无法更改。对字符串进行操作的方法实际上返回的是新的字符串对象。因此,出于性能方面的原因,大量的连接或其他涉及字符串的操作应当用 StringBuilder 类执行,如下所示:System.Text.StringBuilder sb = new System.Text.StringBuilder();sb.Append("on 阅读全文

posted @ 2012-06-26 10:48 流星落 阅读(762) 评论(0) 推荐(0)

C#字符串函数

摘要: Compare 比较字符串的内容,考虑文化背景(场所),确定某些字符是否相等CompareOrdinal 与Compare一样,但不考虑文化背景Format 格式化包含各种值的字符串和如何格式化每个值的说明符IndexOf 定位字符串中第一次出现某个给定子字符串或字符的位置IndexOfAny 定位字符串中第一次出现某个字符或一组字符的位置LastIndexOf 与IndexOf一样,但定位最后一次出现的位置 LastIndexOfAny 与IndexOfAny,但定位最后一次出现的位置PadLeft 在字符串的开头,通过添加指定的重复字符填充字符串PadRight 在字符串的结尾,通过添加指 阅读全文

posted @ 2012-06-26 10:47 流星落 阅读(209) 评论(0) 推荐(0)

C#冒泡排序

摘要: 所谓C#冒泡排序就是在每一次排序的过程中总有一个最大的值被移动到后面,值小的就像水泡一样浮到水面。所谓冒泡,就是在水中垂直排列着一排大小顺序错乱的气泡,现在要求他们从大(小)到(大)排好队。于是众气泡们商量出了一条规则以便有规矩而不慌乱的排好顺序。据其中一气泡透露消息,它们的规则是这样的:从最底下的气泡开始往上浮动,如若碰到上面的气泡比它小,就对它说:兄弟,对不住了,您小,不能在上面,咱俩必须换个位置。一番交涉之后,气泡上升了,并继续着同样的使命。当碰到上面的兄弟比它大的时候, 没办法,游戏有游戏的规则,人生有人生的轨迹,气泡有气泡的规矩,只能对上面的仁兄说:老兄,我的使命结束了,后面的路程你 阅读全文

posted @ 2012-06-26 10:44 流星落 阅读(303) 评论(0) 推荐(0)

C#嵌套循环

摘要: 嵌套循环就是在循环可以再使用循环,如前面讲过的确while,do...while,for,foreach循环都是可以互相嵌套的。例:利务嵌套输出九九乘法口诀。using System;class Program{static void Main(){int i=1,j,result;for(i=1;i<=9;i++){for(j=1;j<=i;j++){result=i*j;Console.Write("{0}*{1}={2}\t",j,i,i*j);}Console.WriteLine();}}}注意:使用嵌套循环时,一定要把一个循环完整地包括在另一个循环中。 阅读全文

posted @ 2012-06-26 10:42 流星落 阅读(237) 评论(0) 推荐(0)

break语句的作用

摘要: 和continue语句一样,在循环语句中与条件语句一起使用。break语句用于跳出本层循环体,开始执行本层循环体外的代码。for(var i=1;i<=10;i++) { if(i==6) break; document.write(i); } //输出结果:12345 break语句跳出包含它的switch,while,do,for,或foreach语句。假如break不是在switch,while,do,for或者foreach语句的块中,将会发生编译错误。当有switch,while,do,for或foreach语句相互嵌套的时候,break语句只是跳出直接包含的那个语句块。如果要 阅读全文

posted @ 2012-06-26 10:39 流星落 阅读(1139) 评论(0) 推荐(0)

continue语句的作用

摘要: continue语句的作用通常在循环语句与条件语句一起使用。在循环中碰到continue后,就会终止本次循环,不执行该循环中位于continue后面的任何语句。continue语句用于结束当次循环,进入下一个循环。for(var i=1;i<=10;i++) { if(i==6) continue; document.write(i); } //输出结果:1234578910 continue语句只能用在while语句、do/while语句、for语句、或者for/in语句的循环体内,在其它地方使用都会引起错误! 阅读全文

posted @ 2012-06-26 10:38 流星落 阅读(591) 评论(0) 推荐(0)

C#循环语句-简单利索的foreach循环

摘要: 简单利索的foreach循环foreach循环用于遍历整个集合或数组,可以获取集合中的所有对象,循环条件不使用布尔表达式,foreach循环简单易用,代码简洁,语法如下:利用foreach遍历数组示例foreach(数据类型 元素 in 集合或数组){//代码块}string[] cityName={"大连","上海","香港","广州","青岛"};foreach (string str in cityName){Console.WriteLine(str);}foreach循环表达式中,“数 阅读全文

posted @ 2012-06-26 10:36 流星落 阅读(573) 评论(0) 推荐(0)

C#循环语句-先判断后执行的另一种方式-for循环

摘要: for循环和while循环都是先判断后执行的方式,for循环的判断条件可以while复杂,常用在可以确定循环次数的情况下,语法如下:for(初始化部分;条件部分;更新部分){执行循环语句}for (int i = 0; i < 10; i++) { Console.WriteLine(i); }for循环的3个表达式都可以省略,但是两个分号不能省略。例如:for(;i<5;i++)for(;i<5;)for(;;)这些都是合法的,但是省略了表达式2会陷入死循环。for循环中的表达式1声明了循环变量i,表达式2限定了i的取值范围,也就是条件,表达式3规定了i如何变化,当表达式1 阅读全文

posted @ 2012-06-26 10:35 流星落 阅读(1052) 评论(0) 推荐(0)

C#循环语句-先执行后判断-do...while循环

摘要: do...while循环和while循环不同之处在于前者先执行,再判断条件,后者是判断,再执行,所以do...while循环不管是否满足条件,至少会执行一次代码块。语法如下:do{Do something;计数器变化}while(条件表达式)using System;class test{ public static void Main() { int sum=0; //初始值设置为0 int i=1; //加数初始值为1 do { sum+=i; i++; } while (i<=100); Console.WriteLine("从0到100的和是{0}",sum) 阅读全文

posted @ 2012-06-26 10:34 流星落 阅读(624) 评论(0) 推荐(0)

C#循环语句-先判断后执行-while循环

摘要: while循环是一个标准的循环语句,先判断是否循环,如果满足条件就执行循环,不满足就跳出循环,执行循环体外的语句。语法如下:while(条件表达式){Do something;计数器变化}using System;class Sample{ public static void Main() { int sum=0; int i=1; while (i<=100) { sum+=i; i++; } Console.WriteLine("从0到100的和是{0}",sum); }}上面的程序是先判断while条件是否成立,如果成立则执行循环体中的语句,每次执行前检查wh 阅读全文

posted @ 2012-06-26 10:32 流星落 阅读(1237) 评论(0) 推荐(0)

C#中的循环语句

摘要: 循环就是重复执行一些语句。循环分为三类:一类在条件变为false之前重复执行语句,一类在条件变为true之前重复执行语句,另一类按照指定的次数重复执行语句。循环语句也可称迭代语句,C# 中共有四种循环语句,它们全部都支持用 break 来退出循环,用 continue 来跳过本次循环进入下一次循环。在C#中可以使用循环语句有4种形式:do...while:当(或直到)条件为true时循环。while:当条件为true时循环。for:指定循环次数,使用计数器重复运行语句。for each:对于集合中的每项或数组中的每个元素,重复执行。一、while 循环 语法: while (条件表达式) { 阅读全文

posted @ 2012-06-26 10:31 流星落 阅读(687) 评论(0) 推荐(0)

C#条件语句常见错误

摘要: 常见错误实例:问题:如果学生成绩高于90分,成绩优秀。在70-90之间良好,60-70合格,60分以下不合格。static void Main(){int score=80;if (score>=90){Console.WriteLine("优秀");}else if(90>score>=70){Console.WriteLine("良好");}else if(70>score>=60){Console.WriteLine("合格");}else if(score<60){Console.Write 阅读全文

posted @ 2012-06-26 10:29 流星落 阅读(374) 评论(0) 推荐(0)

导航