学习 Unity 3D游戏开发日常笔记(C# 第四周)、
2019.7.30(二)
目录
| 周二 | 周三 | 周三 |
|---|---|---|
| 数组传值相关 | 栈Stack | 字典 |
| ArrayList | Queue队列 | 字典_练习 |
| ArrayList增、删、查、插 练习 | 泛型 | 委托 |
| 集合ArrayList_排序 | 泛型集合List | 委托可以当成一个变量进行传递:排序案例: |
| Hashtable | 泛型集合List_练习 | 委托_事件 |
| Hashtable 增、删、查 练习 | 观察者设计模式 |
数组传值相关
带ref:

不带ref:

ArrayList:
①可以动态增长的数组;
②可以自动扩展数组长度;
③增、删、查、改、插入数据;
④使用ArrayList需要引入using System.Collections;
1、



2、删除一个元素


3、根据元素下标号删除元素


4、从index位置开始删除count个元素


5、查找元素下标号


6、指定一个下标号插入一个元素


7、复制ArrayList中的数据到数组中


8、查、数组长度、数组中实际储存的数据数量


ArrayList增、删、查、插 练习:
using System.Collections;
namespace 集合ArrayList_练习
{
public class Item {
public int id;//唯一的
public string name;
public int count;
public Item(int id, string name, int count)
{
this.id = id;
this.name = name;
this.count = count;
}
public override string ToString()
{
return string.Format("id:{0},名字:{1},数量:{2}", id, name, count);
}
}
class BagDataManager {
private static BagDataManager instance;
public static BagDataManager Instance {
get {
if (instance == null) {
instance = new BagDataManager();
}
return instance;
}
}
private BagDataManager() {
}
ArrayList itemList = new ArrayList();
/// <summary>
/// 向列表中添加装备,如果已经有了此种装备,只添加数量,不再重新添加
/// </summary>
/// <param name="item"></param>
public void Add(Item item) {
for (int i = 0; i < itemList.Count; i++)
{
Item item1 = ((Item)itemList[i]);
if (item1.id == item.id) {
item1.count += item.count;
return;
}
}
itemList.Add(item);
}
/// <summary>
/// 删除一个元素
/// </summary>
/// <param name="item"></param>
public void Remove(Item item) {
for (int i = 0; i < itemList.Count; i++)
{
Item item1 = ((Item)itemList[i]);
if (item1.id == item.id)
{
itemList.Remove(item1);
return;
}
}
}
/// <summary>
/// 根据一个id查找一个Item对象
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public Item GetItem(int id) {
for (int i = 0; i < itemList.Count; i++)
{
Item item = (Item)itemList[i];
if (item.id == id) {
return item;
}
}
return null;
}
/// <summary>
/// 将一个Item对象数据插入到ItemList中,
/// 如果;list中已经有了这个数据对象只修改数量
/// </summary>
/// <param name="item"></param>
/// <param name="index"></param>
public void Insert(Item item,int index) {
for (int i = 0; i < itemList.Count; i++)
{
Item mItem = (Item)itemList[i];
if (mItem.id == item.id) {
mItem.count += item.count;
return;
}
}
itemList.Insert(index, item);
}
public void Show() {
for (int i = 0; i < itemList.Count; i++)
{
Console.WriteLine(itemList[i].ToString());
}
}
}
class Program
{
static void Main(string[] args)
{
//Item:id 名字 数量
//BagDataManager:增加 删 查 插
Item item1 = new Item(101, "刀", 3);
Item item2 = new Item(102, "刀2", 4);
Item item3 = new Item(103, "刀3", 5);
Item item4 = new Item(104, "刀4", 6);
Item item5 = new Item(102, "刀2", 5);
BagDataManager.Instance.Add(item1);
BagDataManager.Instance.Add(item2);
BagDataManager.Instance.Add(item3);
BagDataManager.Instance.Add(item4);
BagDataManager.Instance.Add(item5);
//BagDataManager.Instance.Remove(item5);
//Item item = BagDataManager.Instance.GetItem(103);
// Console.WriteLine(item.ToString());
//BagDataManager.Instance.Insert(item3, 2);
BagDataManager.Instance.Show();
Console.ReadLine();
}
}
}




集合ArrayList_排序:
using System.Collections;
namespace 集合ArrayList排序
{
class Item : IComparable
{
public int id;
public string name;
public int atk;
public int def;
public Item(int id, string name, int atk, int def) {
this.name = name;
this.id = id;
this.atk = atk;
this.def = def;
}
public override string ToString()
{
return string.Format("id:{0} ,名字:{1},atk:{2},def:{3}", id, name, atk, def);
}
/// <summary>
/// 当这个类实现了IComparable接口,ArrayList调用了Sort方法时
/// 会自动调用此方法进行做对比,按照我们所设置的顺序进行排序
/// </summary>
/// <param name="obj"></param>
/// <returns></returns>
public int CompareTo(object obj)
{
Item item = (Item)obj;
if (def > item.def)
{
return -1;
}
else {
return 1;
}
}
}
class Program
<

这篇博客记录了学习Unity 3D游戏开发过程中,针对C#语言的第四周学习笔记。内容涵盖数组、ArrayList、Hashtable、栈、队列、泛型、字典、委托、事件以及观察者设计模式,详细讲解了各知识点的使用和练习,旨在提升游戏开发中的编程能力。
最低0.47元/天 解锁文章
7738

被折叠的 条评论
为什么被折叠?



