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

一.NET框架

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

private void button1_Click(object sender, EventArgs e)
2         {
3             XmlDocument doc = new XmlDocument();
4             doc.Load(@"....CD.xml");
5 
6             XmlElement root = null;
7             root = doc.DocumentElement;
8 
9             XmlNodeList listNodes = null;
10             listNodes = root.SelectNodes("/bookstore/book/price");
11             foreach (XmlNode node in listNodes )
12             {
13                 richTextBox1.Text += node.InnerText + "
";
14             }
15         }

encoding
类型:System.String

编码方式属性的值。这是当将 XmlDocument 保存到文件或流时使用的编码方式;因此必须将其设置为 Encoding 类支持的字符串,否则 Save 失败。如果这是 nullNothingnullptrnull 引用(在 Visual Basic 中为 Nothing) 或 String.Empty,则 Save 方法不在 XML 声明上写出编码方式属性,因此将使用默认的编码方式 UTF-8。

注意:如果将 XmlDocument 保存到 TextWriter 或 XmlTextWriter,则放弃该编码值。而改用 TextWriter 或 XmlTextWriter 的编码方式。这确保可以使用正确的编码方式读回写出的 XML。

2.XmlDocument类的方法

   XmlDocument类的方法及说明如下表所示。

方法

说明

AppendChild

将指定的节点添加到该节点的子节点列表的末尾

CreateAttribute

创建具有指定名称的 XmlAttribute

CreateCDataSection

创建包含指定数据的 XmlCDataSection

CreateComment

创建包含指定数据的 XmlComment

CreateDocumentFragment

创建 XmlDocumentFragment

CreateDocumentType

返回新的 XmlDocumentType 对象

CreateElement

创建 XmlElement

CreateEntityReference

创建具有指定名称的 XmlEntityReference

CreateNavigator

创建一个用于导航此文档的新 XPathNavigator 对象

CreateNode

创建 XmlNode

CreateProcessingInstruction

创建一个具有指定名称和数据的 XmlProcessingInstruction

CreateSignificantWhitespace

创建一个 XmlSignificantWhitespace 节点

CreateTextNode

创建具有指定文本的 XmlText

CreateWhitespace

创建一个 XmlWhitespace 节点

CreateXmlDeclaration

创建一个具有指定值的 XmlDeclaration 节点

GetElementById

获取具有指定 ID 的 XmlElement

GetElementsByTagName

返回一个 XmlNodeList ,它包含与指定名称匹配的所有元素的列表

GetNamespaceOfPrefix 

查找当前节点范围内离给定的前缀最近的 xmlns 声明,并返回声明中的命名空间 URI

GetPrefixOfNamespace 

查找当前节点范围内离给定的命名空间 URI 最近的 xmlns 声明,并返回声明中定义的前缀

GetType

获取当前实例的 Type

ImportNode

将节点从另一个文档导入到当前文档

InsertAfter

将指定的节点紧接着插入指定的引用节点之后

InsertBefore

将指定的节点紧接着插入指定的引用节点之前

Load

加载指定的 XML 数据

LoadXml

从指定的字符串加载 XML 文档

Normalize 

将XmlText 节点都转换成“正常”形式

PrependChild 

将指定的节点添加到该节点的子节点列表的开头

ReadNode

根据 XmlReader 中的信息创建一个 XmlNode 对象。读取器必须定位在节点或属性上

RemoveAll 

移除当前节点的所有子节点和/或属性

RemoveChild 

移除指定的子节点

ReplaceChild 

用新节点替换旧节点

Save

将 XML 文档保存到指定的位置

SelectNodes 

选择匹配XPath 表达式的节点列表

SelectSingleNode 

选择匹配 XPath 表达式的第一个 XmlNode

Supports 

测试 DOM 实现是否实现特定的功能

Validate

验证 XmlDocument 是不是 Schemas 属性中包含的 XML 架构定义语言 (XSD) 架构。

WriteContentTo

将 XmlDocument 节点的所有子级保存到指定的 XmlWriter 中

WriteTo

将 XmlDocument 节点保存到指定的 XmlWriter

八.

文件操作

Append

若存在文件,则打开该文件并查找到文件尾,或者创建一个新文件。 这需要FileIOPermissionAccess.Append 权限。 FileMode.Append 只能与FileAccess.Write 一起使用。 试图查找文件尾之前的位置时会引发IOException 异常,并且任何试图读取的操作都会失败并引发NotSupportedException 异常。

Create

指定操作系统应创建新文件。 如果文件已存在,它将被覆盖。 这需要FileIOPermissionAccess.Write 权限。 FileMode.Create 等效于这样的请求:如果文件不存在,则使用 CreateNew;否则使用 Truncate。 如果该文件已存在但为隐藏文件,则将引发 UnauthorizedAccessException异常。

CreateNew

指定操作系统应创建新文件。 这需要 FileIOPermissionAccess.Write 权限。 如果文件已存在,则将引发 IOException异常。

Open

指定操作系统应打开现有文件。 打开文件的能力取决于 FileAccess 枚举所指定的值。 如果文件不存在,引发一个 System.IO.FileNotFoundException 异常。

OpenOrCreate

指定操作系统应打开文件(如果文件存在);否则,应创建新文件。 如果用FileAccess.Read 打开文件,则需要 FileIOPermissionAccess.Read权限。 如果文件访问为 FileAccess.Write,则需要 FileIOPermissionAccess.Write权限。 如果用 FileAccess.ReadWrite 打开文件,则同时需要

Truncate

指定操作系统应打开现有文件。 该文件被打开时,将被截断为零字节大小。 这需要 FileIOPermissionAccess.Write 权限。 尝试从使用 FileMode.Truncate打开的文件中进行读取将导致 ArgumentException 异常。

原文地址:https://www.cnblogs.com/xiaoyu1997/p/5905574.html