zoukankan      html  css  js  c++  java
  • 经典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 异常。

  • 相关阅读:
    利用windows 127.0.0.1:30000 代理在linux下工作
    nginx与ssh 把内网转为公网开发服务器
    php errorlog 记录
    dockerfile php 开发
    ubuntu
    k8s 1.9.1 centos7 install 离线安装
    kubernetes
    linux字符设备驱动--基本知识介绍
    linux应用程序设计--Makefile工程管理
    linux应用程序设计--GDB调试
  • 原文地址:https://www.cnblogs.com/xiaoyu1997/p/5905574.html
Copyright © 2011-2022 走看看