白话C#
序言:
本文内容是在课后为学生总结的知识点,希望能对大家在学习C#时有所帮助。
1.DotNET(.net) 是2000年 比尔.盖茨提出来的一个思想
2.DotNET FrameWork(框架) 是微软为了实现.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{条件不满足时运行的代码}
例如:
int i=100;
if (i > 101) //if如果的意思
{
Console.WriteLine("我是神仙!");
}
else //else就是指否则的意思
{
Console.WriteLine("你是妖怪!");
}
2.switch语句的用法及格式:
当我们在需要复杂的分支条件时,需要用到switch语句,但是条件只能为一个变量,当case(方案)与变量吻合时,就执行其case中的代码。
格式如下:
switch(变量){ case "常量": 代码 break;
default: 代码 break; }
例如:
string bl = 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循环。
bool zt = true;//创建一个bool类型的值,用来判断while的状态,也就是是否跳出while
while (zt)
{
string bl = 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 (int i = 0; i < 2; i++)
{
for (int j = 0;j< jstr[i].Length; 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类型的操作叫装箱,例:
int inti=1000;
object obji = inti; //装箱的操作
13.拆箱操作:是将object类型转换为其它类型的操作叫拆箱,例:
int intj = (int)obji; //在拆箱的时候,必须将其拆为int 类型,因为苹果装到箱子里后,是决不可能拆出葡萄的!
14.枚举类型,一般应用于有限的变量,及有相同意义的变量的定义,格式:
enum Day
{
Mon=-1,
Tue,
Wed,
Thu,
Fri=2,
Sat,
Sun
}
注意:枚举类型是不能定义在方法里边的,只能定义在类里边或类的外边。
1.一维数组的定义:
格式:类型[] 变量名 = new 类型[元素个数]{元素的值}
比如:string[] str=new string[5]
注意:当在new 类型[]的时候,如果在后边初始化其值时,可以不定义元素的个数。但是如果不为其初始化值的话,那么一定要书写元素的个数如:new string[3],如果指定了元素的个数,那么在初始化值时,值的个数必须与我们指定的元素个数相同。
2.二维数组的定义:
格式:类型[,] 变量名=new 类型[行数,列数]{{元素的值},{元素的值}}
比如:int[,] inti=new int[3,4]{{1,2,3,4},{5,6,7,8},{9,8,7,6}}
3.交错数组的定义(数组中的数组)
格式:
类型[][] 变量名=new 类型[2][];
变量名[]=new 类型[2];
变量名[]=new 类型[1];
比如:
string[][] jstr = new string[3][];
jstr[0] = new string[2] { "A", "B" };
jstr[1] = new string[3];
jstr[2] = new string[4];
jstr[1][0] = "C"; //为数组单个元素赋值
4.要想使用集合,必须引入命名空间using System.Collections;
5.ArrayList被称之为动态数组,它的大小时不需要定义的。创建一个ArrayList对象(变量)然后用对象的Add()方法来添加值。值的类型可以是任意类型。
ArrayList arr = new ArrayList();
arr.Add("外星人?");//添加了字符串
arr.Add(123);//添加了int类型
arr.Add(456.5);//添加了double类型
6.Hashtable,是一个成对存在的二列多行的二维表。创建时也是使用new 关建字,同样使用Add方法来添加数据,数据要求成对的健与值。数据类型可以为任意类型。健不能重复。例:
Hashtable ht = new Hashtable();
ht.Add("飞天","男,100,5000,10");
ht.Add("飞地", "男,100,5000,10");
-------以下内容做为了解-------------
7.BitArray称之为位数组,主要用于0和1及是和否的存放。其方法Set()可以设置俱体的值,要求第一个参数为索引,第二个参数bool类型。例如:
BitArray ba = new BitArray(5);
ba.Set(1, true);
8.Queue是队列,有先进先出的特性。它的Enqueue()方法用来从尾部添加一个值。值的类型可以为任意类型。例如:
Queue qu = new Queue();
qu.Enqueue(123);
qu.Enqueue(434);
9.Stack是栈集合,有后进先出的特性。它的Push()方法,用来向集合的顶部添加一个值。类型可以为任意类型。例如:
Stack st = new Stack();
st.Push(1);
1.对象:世间万物都是对象。也就是说,对象是指一个俱体的,存在的事物。
2.类:是指把一些俱有共同特性的对象抽像(归纳)出来我们称之为类。
3.在程序里定义一个类,需要用到class关建字。类需要放在一个命名空间里边。类需要类名。如:class A
4.在类中,可以包括字段,方法,属性,接口,委托。
5.把类创建为对象的过程,我们称之为实例化。需要使用new关健字。如:A a=new A();
6.通过对象.(点)访问类中的方法及字段。
7.我们把 A a; 这样的过程,称之为建立对象引用的过程,建立对象引用,是将a存放到堆栈中, 把 new A()的过程,称之为实例化的过程或创建对象
的过程,是将a俱体的值存放到了堆当中。
8.构造函数(也叫构造方法)是指在类被实例化为对象时,会首先执行的方法。
9.构造方法的特点:不能返回类型及void,方法名和类名相同,必须为public,构造方法可以有多个,跟据参数的个数不同及类型不同会构成方法的重
载。
10.析构函数,用~关健字来创建,方法名必须与类名相同,析构函数只能有一个。
11.方法的重载,当方法名相同,返回类型相同,参数个数不同及方法的参数类型不同时,会构成方法的重载。
12.访问修饰符,目前我们用用public及private来修饰方法及字段,作用分别为public 修饰后,字段或方法可以在创建对象后用对象访问的到。
private反之。
13.通过const关建字来创建常量字段,通过readonly来创建只读的字段。两者的区别如下:只读字段,可以通过构造方法为其赋值。常量在任何情况
下都不能被赋值。 从跟本上讲,只读字段是可以在程序的运行期被改变的,而常量是不能在程序的运行期被改变。
14.在C#编程当中,我们尽量把字段设为私有的。然后将其封装为属性,因为属性是可以控制字段的可访问性及是否可以被赋于值。
15.属性的定义:属性必须与字段成对存在,属性与方法很像,但是没有括号,属性的类型必须与其封装的字段的类型相同,属性中包括get访问器及
set访问,这两个访问器可以单独存在。在get及set访问器的内部,我们可以写语句。例如:
private string A="睡觉的都是坏孩子!";
public string 睡觉
{
get { return A; }//get访问器
set { A = value; }//set访问器
}
16.this关健字,是指本类的意思,我们可以在方法中,使用this关建字访问本类的成员如this.本类中的方法()
17.索引器是用来建立对象的索引的,通常会用在自定义集合里,在.NET framework里,经常应用在集合及数组里。
18.ref关健字,用来传递引用,做为进参及出参来使用,可以为多个参数声明ref关健字。
19.out关健字,做为出参来使用,同样也可以为多个参数声明out。
20.params关建字,用来声明数组参数,给值时可以给任意个数但要求类型相同。在方法的内部,可以将数组遍历。