《深入.Net平台和C#编程》个人学习总结(上)

前提:

因为学习这本书的话,花了一个多月的时间,然后这篇文章的话,主要分享每一章所讲的知识点,做一个整合。

第一章   深入.Net框架

一、.Net框架

  1.两个主要框架(组件)

  (1).公共语言运行时(CLR,Common  Language Runtime)

            CLS(Common Type Sysrem , 公共语言规范)

            CTS(Common Language Specifiation, 通用类型系统)

  (2).框架类库(FCL)

问:

简述.NET框架体系结构的组成   

答:  .NET框架主要由两大组件构成,分别是公共语言运行时(CLR),框架类库(FCL)。

问:

简述CLR的主要用途

答:CLR是所有.NET应用程序运行时环境,是.NET程序都要应用的编程基础,并且可以托管代码。     

第二章 深入C#数据类型

一、值类型和引用类型

  值类型:不同的变量会分配不同的存储空间,并且存储空间中存储的是该变量的值;

      赋值操作传递的是变量的值,改变一个变量的值不会影响另一个变量的值。

  引用类型:赋值是把原对象的引用传递给另一个引用;

      对数组而言,当一个数组引用赋值给另一个数组引用后,这两个引用指向同一个数组,也就是指向同一块存储空间。

  细分值类型和引用类型:

  值类型:基本数据类型(int,long,float,double,char,bool)、枚举类型(enum)、结构类型(struct)

  引用类型:类(System、Object、string、class)、接口(interface)、数组(int[]、string[]、类名[])

二、结构

  1.定义语法:

  访问修饰符   struct  结构名{

    //结构体(字段、属性、方法)

  }

      特点:

  结构中可以有字段,也可以有方法;定义时,结构中的字段不能赋初始值.

  2.结构的使用:

  可以不用new,直接定义结构的对象;声明结构的对象后,必须给结构的成员赋初始值.

三、装箱和拆箱

  装箱:值类型转引用类型(小类型转大类型)

  拆箱:引用类型转值类型(大类型转小类型)

     Object o = 123;

     int j = (int) o ; //需要强转

四、不同类型的参数传递

1.值类型参数传递(不用ref修饰)  

  (1).使用引用类型作为参数.

    引用类型被修改,类成员的值也会被修改.

  (2).使用值类型作为参数.

    不能改变值类型参数的值.

2.引用方式参数传递(用ref修饰)

  (1).使用引用类型作为参数

  (2).使用值类型作为参数

    用ref方式传递的两种参数形式没有区别,类成员的值也会被修改.

问:

  简述值类型和引用类型的主要区别:

答:  (1).数据类型不同.值类型(int,bool,enum....) 引用类型(类、string.....)

    (2).数据保存方式不同.值类型会开辟新空间,引用类型会指向同一个地址

问:

  简述类和结构的区别:

答:  (1).值类型是结构,而引用类型是类

    (2).结构必须声明构造函数,但它们必须带参数

    (3).使用的方式不同,结构无需new,类需new

第三章.使用集合组织相关数据

一、集合

1.ArrayList 动态数组列表

实现步骤:

  (1).引入System.Collections 命名空间

  (2).实例化 ArrayList 对象

    ArrayList  array =  new ArrayList();

1.1常用方法及属性

属性:    Count:获取ArrayList中实际包含的元素数

方法:  返回值类型  方法名称          说明

        int      Add(Object Value)        添加元素到ArrayList的末尾

     void         Remove(Object Value)   删除ArrayList中指定元素

     void      RemoveAt(int index)          删除ArrayList中指定索引处

        void        Clear()           删除ArrayList中所有元素

1.2集合初始化器

  由一系列的元素初始化器构成,可以减少代码量

注意:ArrayList的索引会自动分配和调整

Remove()方法,一次只能删除一个元素,与其完全相同的元素不会影响

2.HashTable

  哈希表(字典),以键(Key)值(Value)对的方法存储数据.

2.1常用属性及方法

属性:

  Count:获取HashTable中实际包含的元素数.

  Keys:获取HashTable中键的集合.

  Values:获取HashTable中值的集合.

  

方法:  返回值类型        方法名称              说明

     void         Add(Object Key,Object  Value)   将带有指定键和值的元素添加到HashTable中

     void      RemoveAt(Object Key)             删除HashTable中指定Key的元素

        void        Clear()                删除HashTable中所有元素

2.2遍历HashTable中的元素:(只能用foreach)

(1).遍历Key  //获得集中键的集合.                   (2).遍历Value的集合

foreach(Obejct key in stus.keys) {       foreach(Obejct ins in stus.Value){    

//int i = (int) key;              //student  s = (student)ins; 

Console.WriteLine(key);          s.show();

}                     }          

(3).获取Key和Vulue的集合.

foreach(DictionayrEntry  entry in stus){

Console.WriteLine(entry.Key);

Student s = (Student)entry.Value;

s.show();

}

二、泛型和泛型集合

泛型:类型参数<T>,约束数据类型,减少强制类型转换或装箱操作.

Using  System.Collections.Generic;   //导包

1.泛型集合:

(1).List<T> 语法: List<T>  对象名 =  new  List<T>();          .对象名.Add(对象);

(2).Dictionary<K,V>  语法:Dictionary <K,V>  对象名 = new Dictionary<K,V>();

遍历方式:

(1).遍历Key

(2).遍历Value

(3).遍历(Key)和值(Value).

foreach(KcyValuePair<string,Student> cntry  in LstStu){

}

2.泛型类

  语法:

  public class 类名 <T>{

  }

猜你喜欢

转载自www.cnblogs.com/yhcc/p/12516345.html