GameFrameWork学习笔记一

LinkedList的学习以前用的都是list对这块没有设计

Linkedlist是容易插入但无法用索引

可以用for循环遍历


    LinkedList<int> listValue = new LinkedList<int>();
    // Start is called before the first frame update
    void Start()
    {
        listValue.AddLast(23);
        listValue.AddFirst(1);
        listValue.AddLast(33);
        
        for (LinkedListNode<int> curent= listValue.First; curent!=null;curent=curent.Next)
        {
            Debug.Log(curent.Value);
        }
    }

对T泛型还是不太了解,明白,但是自己不会写出来日后还要多练习

   /// <summary>
    /// 获取指定管理器
    /// </summary>
    public T GetManager<T>() where T : ManagerBase
    {
        Type managerType = typeof(T);
        foreach (ManagerBase manager in m_Managers)
        {
            if (manager.GetType() == managerType)
            {
                return manager as T;
            }
        }

        //没找到就创建
        return CreateManager(managerType) as T;
    }

Type,Typeof,GetType

虽然都能获得Type,但是两者是有区别的

typeof() 相当于一种运算符,它是获得类型的Type ,所传的参数只能是类型名称,而不能是实例对象

GetType()是基类System.Object的方法,因此只有建立一个实例之后才能够被调用(初始化以后)

C#中的事件就是一种特殊的委托类型,用于实现发布-订阅模式。一个类可以发布事件,其他类可以订阅这些事件并提供响应方法。当事件触发时,所有订阅者的方法会被依次调用。
 

public class Publisher
{
    public event EventHandler<MyEventArgs> CustomEvent;

    protected virtual void OnCustomEvent(MyEventArgs e)
    {
        CustomEvent?.Invoke(this, e);
    }

    public void TriggerEvent()
    {
        OnCustomEvent(new MyEventArgs("Event triggered"));
    }
}

public class Subscriber
{
    public void Subscribe(Publisher publisher)
    {
        publisher.CustomEvent += OnCustomEvent;
    }

    private void OnCustomEvent(object sender, MyEventArgs e)
    {
        Console.WriteLine($"Subscriber received event: {e.Message}");
    }
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值