白话C#.docx
《白话C#.docx》由会员分享,可在线阅读,更多相关《白话C#.docx(16页珍藏版)》请在冰豆网上搜索。
白话C#
序言:
本文内容是在课后为学生总结的知识点,希望能对大家在学习C#时有所帮助。
1.DotNET(.net)是2000年 比尔.盖茨提出来的一个思想
2.DotNETFrameWork(框架)是微软为了实现.net思想而造的一个框架
3.DotNet框架包括两个部分:
(1)公共语言运行时(CLR)
(2)类库集(FCL)
4.在类库集(FCL)中,包括了所有编写.NET程序时所要应用到的函数(方法)
5.公共语言运行时,是来运行编译好的.NET程序的
6..NET程序必须是两次编译才可以运行
7.第一次编译后的.NET程序,我们叫做中间语言(MSIL+元数据)
8.第二次编译后,才能成为机器代码,让计算机识别并执行。
9.公共语言运行时,包括两个部分,分别为CLS及CTS
10.CLS公共语言规范 CTS公共类型规范
11.C#(Csharp)是一门开发语言,是由C,C++派生而来的C++++
12.我们现在学习的C#版本为C#2.0
13.在C#中,函数改名叫做方法
14.C#中的注释有三种,分别是单行文本注释两个"//",多行文本注释"/*内容*/",及XML文档注释(XML文档注释,需要在方法或者类的前边打三个///会自动生成)
15.命名空间,是用来定义类及方法的作用的,我们需要用到什么样的方法,就得引用什么样的命名空间。
同样我们也可以自定义命名空间,用来区分我们所编写的类库。
16.方法可以有四种模式分别为返回值的方法,无返回值的方法,带参数的方法,及不带参数的方法。
注:
返回值的方法必须得在写方法签名时,书写返回值类型,并在方法执行体内部书写return及要返回的值。
无返回值的方法必须得为方法签名中书写void关建字,无返回值的方法执行的是一个程序的过程。
17.控制台的输入语句:
Console.Read()读一个字符并返回该字符的ASCII码值。
Console.ReadLine()读一行字符串,并返回该字符串。
18.控制台的输出语句:
Console.Write() 输出字符串,但不换行。
Console.WriteLine()输出一行字符串,带换行的。
19.类型的转换有两种方式:
(1)Convert.To类型(其它类型)将其它类型转到到指定的类型,如:
Convert.ToChar("a");将字符串类型a转换为char类型
(2)类型.Parse(字符串类型) 将字符串类型转换为指定类型,如:
double.Parse("12.4");将字符串类型12.4转换为double类型
20.常用的转义符:
\’单引号
\”双引号
\\反斜杠
\0空
\a警告(产生峰鸣)
\f换页
\n换行
\r回车
\t水平制表符
\v垂直制表符
21.C#中的预定义类型,基本与C语言相同如int,long,double等等,只是多了两个特别的类型,分别为:
object类型 它是所有其它类型的最根本的基础类型。
string类型 字符串类型,一个字符串是一个Unicode字符序列
1.if语句的用法及格式:
当我们需要简单的分支或判断的时候,需要用到if语句,格式如下:
if(条件){条件满足时所运行的代码}else{条件不满足时运行的代码}
例如:
inti=100;
if(i>101) //if如果的意思
{
Console.WriteLine("我是神仙!
");
}
else//else就是指否则的意思
{
Console.WriteLine("你是妖怪!
");
}
2.switch语句的用法及格式:
当我们在需要复杂的分支条件时,需要用到switch语句,但是条件只能为一个变量,当case(方案)与变量吻合时,就执行其case中的代码。
格式如下:
switch(变量){case"常量":
代码 break;
default:
代码 break; }
例如:
stringbl=Console.ReadLine();
switch(bl)
{
case"sx":
Console.WriteLine("我是神仙!
");
break;
case"yg":
Console.WriteLine("你是妖怪!
");
break;
case"xz":
Console.WriteLine("他是修真!
");
break;
case"xm":
Console.WriteLine("谁是修魔!
");
break;
default:
Console.WriteLine("这是个普通人!
");
break;
}
3.while循环一般应用在bool类型的条件上,如果为true时,就会一直循环。
好像电风扇一样,如果不断电的话会一直转动,断电后就会停止,一般在
应用while循环时,我们会定义一个开关,来控制while循环。
boolzt=true;//创建一个bool类型的值,用来判断while的状态,也就是是否跳出while
while(zt)
{
stringbl=Console.ReadLine();
switch(bl)
{
case"sx":
Console.WriteLine("我是神仙!
");
break;
case"yg":
Console.WriteLine("你是妖怪!
");
break;
case"xz":
Console.WriteLine("他是修真!
");
break;
case"xm":
Console.WriteLine("谁是修魔!
");
break;
default:
Console.WriteLine("这是个普通人!
");
zt=false;
break;
}
}
4.for循环:
for循环一般是用来遍历有一定限量的循环
格式:
for(int变量=0;变量<条件;变量++)
{
//循环体
}
例如:
for(inti=0;i<2;i++)
{
for(intj=0;j {
Console.WriteLine(jstr[i][j]);
}
}
5.foreach是用于集合里一个一个的遍历(叠迨)数据。
就好比从鸡蛋框里取蛋一样,一个一个的来。
。
直到取完为止。
foreach(类型变量名in集合或数组)
{
//循环体
}
6.变量:
在方法中定义变量时,如果要输出该变量的话,一定为变量赋值。
7.字段:
在C#我们将定义在方法外边,类(Class)里边的变量称为字段,字段可以在本类的方法中使用。
常量字段只需要在类型前边加一个关建字
const。
8.object类型是所有类型的基本类型,它可以存放任何类型。
9.在C#中分为两种基本类型,分别为:
值类型,与引用类型
值类型,值是存放在堆栈当中的;引用类型,值是存放在托管堆当中的,在堆栈当中存放的是其指向托管堆值的地址。
10.值类型包括:
int、char、double、bool等等简单类型(预定义类型)
11.引用类型包括:
类、数组、接口、字符串类型(string)等等。
12.装箱操作:
是将值类型转换为object类型的操作叫装箱,例:
intinti=1000;
objectobji=inti;//装箱的操作
13.拆箱操作:
是将object类型转换为其它类型的操作叫拆箱,例:
intintj=(int)obji; //在拆箱的时候,必须将其拆为int类型,因为苹果装到箱子里后,是决不可能拆出葡萄的!
14.枚举类型,一般应用于有限的变量,及有相同意义的变量的定义,格式:
enumDay
{
Mon=-1,
Tue,
Wed,
Thu,
Fri=2,
Sat,
Sun
}
注意:
枚举类型是不能定义在方法里边的,只能定义在类里边或类的外边。
1.一维数组的定义:
格式:
类型[]变量名=new类型[元素个数]{元素的值}
比如:
string[]str=newstring[5]
注意:
当在new类型[]的时候,如果在后边初始化其值时,可以不定义元素的个数。
但是如果不为其初始化值的话,那么一定要书写元素的个数如:
newstring[3],如果指定了元素的个数,那么在初始化值时,值的个数必须与我们指定的元素个数相同。
2.二维数组的定义:
格式:
类型[,]变量名=new类型[行数,列数]{{元素的值},{元素的值}}
比如:
int[,]inti=newint[3,4]{{1,2,3,4},{5,6,7,8},{9,8,7,6}}
3.交错数组的定义(数组中的数组)
格式:
类型[][]变量名=new类型[2][];
变量名[]=new类型[2];
变量名[]=new类型[1];
比如:
string[][]jstr=newstring[3][];
jstr[0]=newstring[2]{"A","B"};
jstr[1]=newstring[3];
jstr[2]=newstring[4];
jstr[1][0]="C"; //为数组单个元素赋值
4.要想使用集合,必须引入命名空间usingSystem.Collections;
5.ArrayList被称之为动态数组,它的大小时不需要定义的。
创建一个ArrayList对象(变量)然后用对象的Add()方法来添加值。
值的类型可以是任意类型。
ArrayListarr=newArrayList();
arr.Add("外星人?
");//添加了字符串
arr.Add(123);//添加了int类型
arr.Add(456.5);//添加了double类型
6.Hashtable,是一个成对存在的二列多行的二维表。
创建时也是使用new关建字,同样使用Add方法来添加数据,数据要求成对的健与值。
数据类型可以为任意类型。
健不能重复。
例:
Hashtableht=newHashtable();
ht.Add("飞天","男,100,5000,10");
ht.Add("飞地","男,100,5000,10");
-------以下内容做为了解-------------
7.BitArray称之为位数组,主要用于0和1及是和否的存放。
其方法Set()可以设置俱体的值,要求第一个参数为索引,第二个参数bool类型。
例如:
BitArrayba=newBitArray(5);
ba.Set(1,true);
8.Queue是队列,有先进先出的特性。
它的Enqueue()方法用来从尾部添加一个值。
值的类型可以为任意类型。
例如:
Queuequ=newQueue();
qu.Enqueue(123);
qu.Enqueue(434);
9.Stack是栈集合,有后进先出的特性。
它的Push()方法,用来向集合的顶部添加一个值。
类型可以为任意类型。
例如:
Stackst=newStack();
st.Push
(1);
1.对象:
世间万物都是对象。
也就是说,对象是指一个俱体的,存在的事物。
2.类:
是指把一些俱有共同特性的对象抽像(归纳)出来我们称之为类。
3.在程序里定义一个类,需要用到class关建字。
类需要放在一个命名空间里边。
类需要类名。
如:
classA
4.在类中,可以包括字段,方法,属性,接口,委托。
5.把类创建为对象的过程,我们称之为实例化。
需要使用new关健字。
如:
Aa=newA();
6.通过对象.(点)访问类中的方法及字段。
7.我们把Aa;这样的过程,称之为建立对象引用的过程,建立对象引用,是将a存放到堆栈中,把newA()的过程,称之为实例化的过程或创建对象
的过程,是将a俱体的值存放到了堆当中。
8.构造函数(也叫构造方法)是指在类被实例化为对象时,会首先执行的方法。
9.构造方法的特点:
不能返回类型及void,方法名和类名相同,必须为public,构造方法可以有多个,跟据参数的个数不同及类型不同会构成方法的重
载。
10.析构函数,用~关健字来创建,方法名必须与类名相同,析构函数只能有一个。
11.方法的重载,当方法名相同,返回类型相同,参数个数不同及方法的参数类型不同时,会构成方法的重载。
12.访问修饰符,目前我们用用public及private来修饰方法及字段,作用分别为public修饰后,字段或方法可以在创建对象后用对象访问的到。
private反之。
13.通过const关建字来创建常量字段,通过readonly来创建只读的字段。
两者的区别如下:
只读字段,可以通过构造方法为其赋值。
常量在任何情况
下都不能被赋值。
从跟本上讲,只读字段是可以在程序的运行期被改变的,而常量是不能在程序的运行期被改变。
14.在C#编程当中,我们尽量把字段设为私有的。
然后将其封装为属性,因为属性是可以控制字段的可访问性及是否可以被赋于值。
15.属性的定义:
属性必须与字段成对存在,属性与方法很像,但是没有括号,属性的类型必须与其封装的字段的类型相同,属性中包括get访问器及
set访问,这两个访问器可以单独存在。
在get及set访问器的内部,我们可以写语句。
例如:
privatestringA="睡觉的都是坏孩子!
";
publicstring睡觉
{
get{returnA;}//get访问器
set{A=value;}//set访问器
}
16.this关健字,是指本类的意思,我们可以在方法中,使用this关建字访问本类的成员如this.本类中的方法()
17.索引器是用来建立对象的索引的,通常会用在自定义集合里,在.NETframework里,经常应用在集合及数组里。
18.ref关健字,用来传递引用,做为进参及出参来使用,可以为多个参数声明ref关健字。
19.out关健字,做为出参来使用,同样也可以为多个参数声明out。
20.params关建字,用来声明数组参数,给值时可以给任意个数但要求类型相同。
在方法的内部,可以将数组遍历。