经典C#编程理解,概要,经典

时间:2022-06-01 12:56:01

ADO.NET微软提供的一组类库,可以帮助程序员和数据库交互。

CLS(公共语言规范) CTS(通用语言类型)

类库:

可以看成一个承载了N个类的容器。

类库和命名空间:

一个类库对应一个命名空间,也可以多个。

二.自动属性

public string name{set;get;}

应用场景:

当不用做逻辑判定是,可以使用自动属性。

三.封装

信息隐藏,将抽象的数据和操作结合在一起,将私有字段封装成公有属性。

1.保证数据的安全性。

2.提供清晰的对外接口。

3.类内部实现可以任意修改,不影响其他类。

OOP面向对象编程。

AOP面向切面编程

OOD面向对象设计

OOA面向对象分析

DBA数据库管理员

CLS(公共语言规范)

CLR(公共语言运行时)  CTS(同用类型)

.NET框架主键  

FCL框架内库

第二章:

结构的定义:

1.结构体关键字是struct.

2.不用new,就可以给属性赋值。

3.结构体不用new的时候,Name不能是自动属性。

4.结构体是值类型,class是引用类型。

5.结构体中不能给字段赋初值,类中可以。

6.结构体不能生成构造,类会在后台自动形成。

public struct Student { public int id; public int age; public void Show() { console.WriteLine(”年龄:“id,age); } } stattic void Main(string[]args) { student stu;创建学生结构  stu.id=1001;  stu.age=20; stu.show(); }

值传递,引用类型

传递值类型不会保留,传递引用类型永久保留。

1.如果参数前有ref一定会保留。

2.如果参数前没有ref,想保留必须自身是引用类型。

3值类型不可以为null,引用类型可以为null.

4.值类型分配到栈上,引用类型保存到堆上。

三集合:

集合:将一堆数据放在在一起。

ArrayList  list=new ArrayList();

foreach(object item in list)

{

console.WriteLine(item);

}

list.RemoveAt(1);删除下标为1的数据

1.使用Arraylist引入命名空间

2.集合扩容原理:集合中元素个数为0,则没有开辟空间。

3.默认集合中出现第一个元素,那么集合大小为4,如果放入第五个元素,那么就扩容8个。

Hashtable table=new Hashtable();

foreach(string key in table.keys)

{

console.wirteLine(key,table[key]);

}

HashTable类型在集合只能用foreach循环遍历,因为没有索引。

他是无序的,key值不能重复,不能用 RemoveAt(1);

List<> list=new List<>

他与ArrayList相似,list<>访问数据时不需类型转换。

Dictionary<k,y> diy=new Dictionary<k,y>

泛型集合可以作为类的一个属性,使用泛型集合必须实例化。

四.类的方法

构造函数

无参

public se()

{

this.id="00";

this.name="晓雯";

}

Main方法()

se en=new se();

console.writeLine(en.se);

带参

public se(string name,int age)

{

this.name=name;

this.age=age;

}

方法重载

如果方法名相同,参数列表(个数,顺序,类型)不同,和方法返回值无关。

构造函数同常与类名相同,构造函数不声明返回值,用public类型。

五.继承多态

继承优点:

减少代码冗余,实现代码复用。

如果一个类后面通过冒号又跟上另一个类,就用冒号前面的类为子类,冒号后面的类为父类,,这就是继承关系。

子类不能继承构造

子类:派生类;

父类:基类

继承的两大特性

单根性,一个类只能有一个直接父类。

base关键字和protected修饰符

base调用构造(参数列表)父类参数构造的参数一致。

public string sayhi()

{

string message=string.Format("大家好{0},今年{1}岁“,base.name,base.Age);

}

多态

不同的对象对于同一个操作,做出的相应不同,目的是为了统一调用。

public virtual string sayhi()

{

}

public overrde string sayhi()

{

}

实现多态

1.父类中定义sayhi()方法,用virtual关键字定义虚方法。

2.在子类定义子类自己的sayhi()方法,用override关键字修饰就实现了对父类方法重写。

六.深入多态

1.一个类用abstract修饰,就是抽象类

2.抽象类不能用实例化

3.抽象方法不能有方法体

4.抽象方法必须在抽象类中

5.抽象方法存在的目的是,为了约束子类,中方发。

6.抽象类不能是静态类(static)或者是密封(staled)

7.抽象类中的所有抽象方法都必须被子类重写,除非子类本身就是抽象类。

public abstract class job

{

public jop(){}

public abstract void Execute();

}

public override void Execute()

{

}

里氏替换原则:子类对象可以替换父类对象。

面向对象的三大特性

封装:保证对象自身数据的完整性和安全性

继承:建立类之间的关系,实现代码复用。

多态:相同的方法调用可实现不同的实现方式。

七.XML

解析XML