12602人加入学习
(21人评价)
C#编程-第二季-面向对象-宇宙最简单2021最新版

制作完成于2021-10月20日 使用VS2019

价格 免费

队列Queue

使用方式和栈类似

 

入队、出队

 

Peek队头的数据

Dequeue 出队(从队头开始)

 

Contains()

Count

 

[展开全文]

myTS.clear(); //清空

 

myTS.Contains() //是否包含某个数值(返回布尔)

 

myTS.Counts //栈内的数值

 

CopyTo 将栈里面的数值复制到Array中

 

ToArray 把栈转换成一个数组

 

 

[展开全文]

使用栈

 

创建栈(必须制定泛型)

Stack<int> myTS =new Stack<int>();

 

入栈、出栈

myTS.Push(1);

 

遍历栈

foreach (int in myTS) // 但是会显示后进

 

myTS.Peek(); //获取栈顶(返回值)

 

myTS.Pop(); // 出栈(返回当前栈顶的数值)

出栈的时候会把栈顶的数据移除

 

 

[展开全文]

Hashtable

Dictionary 必须制定泛型

键值对:key-value

指定两个泛型Dictionary<int,string> myDB=

 

在字典内取值前先判断是否存在(可以使用.ContainsKey来检测是否存在)

 

key必须唯一

 

遍历字典,键值对存储的方式

foreach(KeyValuePair<int,string>  myValue in myList){};

myValue.key

myValue.Value

 

myList.Keys //返回的是一个集合类,所有的key的集合

KeyCollection (相当于一个List)的使用

同样 myList.Values //返回所有的值的集合

 

删除,根据Key来进行删除

myList.Remove(2);

如果remove一个不存在的键值,则无事发生

 

实际运用:

1、创建道具类Item

2、创建各种属性变量(Id Name HP MP等等)

3、利用变量创建构造函数

4、创建字典,Key为Id,Value为一个Item实例

5、增加物品

myDict.Add(1001,new Item(1001,"物品名",100,0,0));

 

 

 

 

[展开全文]

使用List必须使用泛型

List<string>

 

方法二:创建一个数组,把数组当成参数传入list

 

myList.Add();

 

遍历数组

foreach(string item in list)

 

MyList.Capacity 最大容量

MyList.Count

 

列表类内保存了一个数组,会自动扩容

 

MyList.Remove

MyList.Insert

MyList.RemoveRange

MyList.IndexOf

MyList.Contains()//返回布尔值

 

List 必须使用泛型(使用最多)

ArrayList 

LinkedList 使用链式存储

[展开全文]

Equals() 继承自object

 

int 比较数值

string比较静态存储区

类比较引用

 

类里面重写Equals,比较类里面的值

 

强制类型转换:(类型名字)类

[展开全文]

使用Equals()来判断两个变量是否相同(高级版的==)

Array.Sort()方法可以进行排序

[展开全文]

系统自带的list,如果超出范围后,会进行预处理的报错

 

throw 抛出异常,new,System.ArgumentOutOfRangeExcption("报错信息");

如果命名空间已有了System,则不需要加System

 

IndexOutOfRangeException

ArgumentOutOfRangeException

 

  • 修复 IndexOutOfRangeException:检查循环边界和集合访问逻辑。

  • 使用 ArgumentOutOfRangeException:在公共方法中验证参数,明确约束(如 if (param < 0) throw ...)。

  • 集合访问差异List<T> 的索引器会抛出 ArgumentOutOfRangeException(手动验证),而数组会抛出 IndexOutOfRangeException(自动抛出)。

[展开全文]

泛型方法使用方式类似

1、创建方法的时候加上T

public static int GetSum<T>(T a,T b){};

2、使用方法的时候指定类型

GetSum<int>(23,45);

[展开全文]

如果是writeline一个类,或者让一个类tostring,则会打印出这个类的命名空间等信息

可以在类中重写tostring的方式,来让这个函数输出类中的变量的(因为tostring是object的类,而object是所有类的基类

[展开全文]

泛型:泛型类、泛型方法

处理不同数据类型

 

使用方法:

1、在创建类的时候,使用 T来代替各种类型(例如:int、string、double等等)

class ClassA<T>{ };

2、将类中声明的变量改成T(可以是任意类型)

3、实例化的时候,指定一个类型,后面的执行就会使用这个类型来进行处理

ClassA<int> a = new ClassA<int>();

 

注意:课程中的例子,将两个参数相加,但实际上T类型的无法相加,所以通过转换成dynamic来处理

[展开全文]

for循环

foreach遍历

 

Console.WriteLine(列表名称);  可以直接输出当前的类型的命名空间泛型等信息

 

 

[展开全文]

列表内容有一个数组

随着往列表内添加内容,列表容量会自动扩增:0、4、8、16依次增加

把原有的数组销毁,新增一个新的数组放入(使用Array.Copy())

可以预先制定容量大小,避免重复的消耗和复制,节省性能消耗

使用Capacity来设置、获取容量

intList.Capacity = 10;

 

[展开全文]

集合类和数组的区别

 

引用集合类的命名空间system.Collections.Generic;

 

List<int> listName = new List<int>(){ 放初始值 };

<> 泛型类

 

使用方法和数组类似

内置Count变量(计数器)

 

for 循环进行遍历

[展开全文]

接口中的方法一定是public

 

结构体放置在栈中

类实例放在堆中

[展开全文]

先执行父类的构造函数,再执行子类的构造函数

[展开全文]

接口中不能包含函数体,即使是空的函数体也不行。

 

子类中用new,隐藏方法:原来父类中的方法还在。

虚函数override了之后,原来父类中的方法不存在了。

[展开全文]

授课教师

问问题加入A计划,有专门负责答疑的老师哦!!!

课程特色

下载资料(1)
视频(60)