白话C#

 序言:

本文内容是在课后为学生总结的知识点,希望能对大家在学习C#时有所帮助。

 

 

.DotNET(.net) 是2000年 比尔.盖茨提出来的一个思想

 

 

.DotNET FrameWork(框架) 是微软为了实现.net思想而造的一个框架

 

.DotNet框架包括两个部分: (1)公共语言运行时(CLR) (2)类库集(FCL)

 

.在类库集(FCL)中,包括了所有编写.NET程序时所要应用到的函数(方法)

.公共语言运行时,是来运行编译好的.NET程序的

..NET程序必须是两次编译才可以运行

 

.第一次编译后的.NET程序,我们叫做中间语言(MSIL+元数据)

 

.第二次编译后,才能成为机器代码,让计算机识别并执行。

 

.公共语言运行时,包括两个部分,分别为CLSCTS

 

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.值类型包括:intchardoublebool等等简单类型(预定义类型)

 

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称之为位数组,主要用于01及是和否的存放。其方法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.访问修饰符,目前我们用用publicprivate来修饰方法及字段,作用分别为public 修饰后,字段或方法可以在创建对象后用对象访问的到。

private反之。

 

13.通过const关建字来创建常量字段,通过readonly来创建只读的字段。两者的区别如下:只读字段,可以通过构造方法为其赋值。常量在任何情况

下都不能被赋值。 从跟本上讲,只读字段是可以在程序的运行期被改变的,而常量是不能在程序的运行期被改变。

 

14.C#编程当中,我们尽量把字段设为私有的。然后将其封装为属性,因为属性是可以控制字段的可访问性及是否可以被赋于值。

 

15.属性的定义:属性必须与字段成对存在,属性与方法很像,但是没有括号,属性的类型必须与其封装的字段的类型相同,属性中包括get访问器及

set访问,这两个访问器可以单独存在。在getset访问器的内部,我们可以写语句。例如:
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关建字,用来声明数组参数,给值时可以给任意个数但要求类型相同。在方法的内部,可以将数组遍历。

 

 

posted @ 2011-10-19 10:09  vito qi  阅读(575)  评论(0编辑  收藏  举报