那些年【深入.NET平台和C#编程】

 网络编程     |      2019-11-26 23:02

一、深入.NET框架

1..NET框架具备多少个构件:CLCR-V(公共语言运转时卡塔 尔(阿拉伯语:قطر‎和FCL(框架类库卡塔尔,CL奥迪Q5是.NET框架的根底

2.框架核心类库:

System.Collections.Generic:泛型操作

System.IO:IO流操作

System.Net:网络编制程序

System.Data:ADO.NET结构的类的拜谒

System.Windows.Forms:窗体操作

System.Drawing:图形操作

二、深入C#数据类型

1.结构体:结构体是由struct修饰的类,结构体是值类型(枚举也是值类型卡塔尔

public struct Student
{
}

2.拆箱和装箱:

装箱:正是把值类型调换为援用类型

object o=1;

拆箱:就是把引用类型转换为值类型

int num=(int)o;

3.值传递和援用传递(有无ref修饰)

a.有ref修饰时,改良的值团体带头人久保存

b.无ref修饰时,是值类型的,更改的值不团体带头人久保存

c.无ref修饰时,是援用类型的,改正的值会恒久保存

三、泛型集结

1.凑合的定义:

聚集正是将一群数据类型的数额放在一块儿的大器晚成种容器,和数组是很肖似的事物。

2.聚众的归类以致表明方法

a.集合分为非泛型和泛型集合,非泛型又分单列(ArrayList卡塔尔和双列(Hashtable卡塔 尔(英语:State of Qatar),泛型也分单列(List<T>卡塔 尔(阿拉伯语:قطر‎和双列(Dictionary<K,V>卡塔 尔(英语:State of Qatar)。

单列的T数据项目可认为object类型,双列的K,V也得以是object类型

b.会集的宣示

ArrayList list=new ArrayList();

Hashtable list=new Hashtable();

List<T> list=new List<T>();

Dictionary<K,V> list=new Dictionary<K,V>();

3.会晤的诀要和质量

1.Add(),增增加少的措施

2.Remove(),删除数据的方法,()里填的是一整条的数量,单列会集的去除,集结会去自动爱惜数据,这样会集不会冒出某些索引的值是为空的

3.RemoveAt(),相似也是删除数据的艺术,()里填的是索引(单列卡塔尔国双列未有RemoveAt()方法,

4.Clear(),清空集结的富有数据

5.Count属性,能够博得集合有几条数据

6.Capacity属性,集结的容积,会集的体量是成倍(二倍)的增加的,Count为0时,Capacity为0,Count为1时,Capacity为4

7.Contains(),单列集结用来推断有些数据是不是留存

8.ContainsKey(),双列判别是不是存在某些Key值

9.ContainsValue(),双列判别是否留存有些Value值

4.凑合的遍历方法

HashTable和Dictionary遍历分歧正是,遍历值类型的时候,HashTable供给开展类型转变(拆箱,装箱卡塔 尔(英语:State of Qatar)

HashTable:

(1).通过Key值遍历 foreach (string item in list.Keys) { Console.WriteLine(list[item]); }

(2).通过value值遍历 foreach (Student item in list.Values) { Console.WriteLine((Student)item.Name); }

(3).通过意气风发体化的双列会集遍历 foreach (DictionaryEntry item in list) { Console.WriteLine(item.Key); Console.WriteLine(((Student)item.Value).Name); }

Dictionary:

(1).通过Key值遍历 foreach (string item in list.Keys) { Console.WriteLine(list[item]); }

(2).通过value值遍历 foreach (Student item in list.Values) { Console.WriteLine(item.Name); }

(3).通过意气风发体化遍历 foreach (KeyValuePair<T,V> item in list) { Console.WriteLine(item.Key); Console.WriteLine((item.Value).Name); }

那些年【深入.NET平台和C#编程】。四、深刻类的法门

1.措施重载:通过传的参数的两样进而调用分歧的不二秘技,方法名相似,参数类型分裂,参数顺序分裂,参数个数分裂,和重临值非亲非故

参数类型差别:

public void Play(int num){};

public void Play(string name){};

参数顺序分歧:

public void Play(int num,int age){};

public void Play(int age,int num){};

参数个数不相同:

public void Play(int num){};

public void Play(string name,int num){};

和再次来到值毫无干系:

public string Play(int num){};

public int Play(int num){};

2.类的组织:和类名相同,无重回值

无参构造:

public class Student

{

  public Student(){};

}

带参构造:有带参构造,必需写出类的无参构造

public class Student

{

  public string Name { get; set; }

  public Student(){};

  public Student(string name){this.Name=name};

}

3.目的间的人机联作

二个TV类:

public class Tv

{

  public void Play(){};

}

三个TV工具类

public class TvTool

{

  public void Play()

  {

    Tv t=new Tv();

    t.Play();

  }; 

}

主程序中:

TvTool tool=new TvTool();

tool.Play();

故此独有调控一个类去调控别的类

五、世襲和多态

1.一而再再而三:子类世襲父类,子类便得以采纳父类的性质和章程,世襲用“:”(冒号卡塔尔国完结持续

父类:

public class Man

{

  int age;

  string name;

  public void Say()

  {

  };

}

子类:

public class Student:Man

{

  public void Play()

  {

    方法里便足以使用父类的性质和方法

    age=1;

    name="张三";

    Say();

  };

}

2.虚措施完毕多态:通过子类重新父类的措施,实现多态,进而叁个艺术达成区别成效

父类:

public class Man

{

  public virtual void Say()

  {

  }

}

子类:

public class Student:Man

{

  public override void Play()

  {

    作者是多少个学员

  }

}

public class Super:Man

{

  public override void Play()

  {

    笔者是二个优秀

  }

}

六、深切多态

1.里氏法则:父类实力化子类不会影响程序

2. is 和  as

is操作符用于检核对象和内定的品类

as操作符用于四个对象时期的类型转变

3.抽象类完毕多态

父类:

public abstract class Man

{

  public abstract void Say()

  {

  }

   public void Play(){}

  抽象类能够有普通方法

}

子类:

public class Student:Man

{

  public override void Play()

  {

    作者是三个上学的小孩子

  }

}

public class Super:Man

{

  public override void Play()

  {

    笔者是二个天下第一

  }

}

七、Xml操作

1.Xml解析

XmlDocument doc = new XmlDocument();
doc.Load(path);
XmlNode root = doc.DocumentElement;

foreach (XmlNode item in root.ChildNodes)
{  

switch (item.Name)
{
case "Name":
movieName = item.InnerText;
m.MovieName = movieName;
break;
case "Poster":
playBill = item.InnerText;
m.Poster = playBill;
break;

}

能够将Xml数据放在集结中

也能够经过索引器实行解析到Xml数据

2.关于XmlNode对象的习性

InnerText:当前节点的值

Name:当前节点的称呼

ChildNodes:当前节点的全体子节点

3.treeView绑定节点

TreeNode tn = new TreeNode(item);
tn.Tag = Schedule.Items[item].Movie;
Treeview.Nodes.Add(tn);

八、文件操作

1.读写文件

写:

FileStream fs=new FileStream(path,FileMode.Create);

StreamWriter sw=new StreamWriter(fs);

sw.Writer(须求些的文本);

sw.Close();     后开的先关流

fs.Close();

读:

FileStream fs=new FileStream(path,FileMode.Open);

StreamWriter sw=new StreamWriter(fs,Ending.Default);

String txt=sw.ReadToEnd();

sw.Close();     

fs.Close();

2.相关属性

Exists:潘决断是或不是留存

Extension:后缀名

Naem:文件名

FullName:文件地方

 

上一篇:没有了 下一篇:没有了