惊雷无声 发表于 2024-12-11 01:47:29

【SKFramework框架焦点模块】3-5、函数扩展模块

推荐阅读


[*]CSDN主页
[*]GitHub开源地址
[*]Unity3D插件分享
[*]QQ群:398291828
[*]小红书
[*]小破站
各人好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,以为有效记得一键三连哦。
一、媒介

【Unity3D框架】SKFramework框架完全教程《全网最全》-专栏文章目次:
https://blog.csdn.net/q764424567/article/details/143926557
二、正文

2-1、介绍

先来了解一下扩展函数:
扩展函数,使其能像成员函数一样通过类.函数的方式调用。
起首创建一个静态类,然后在其中界说扩展函数,第一个参数使用this关键字指定要扩展的类。
针对某一个类class编写一个扩展函数func之后,可以通过class.func()这种用小数点来连接的方式来调用到该扩展函数,就好似为这个类添加了一个成员函数一般,非常地方便。
函数扩展模块主要是存放扩展函数的合集模块。
按照类型举行分类:
https://i-blog.csdnimg.cn/direct/8dddc1c850a34d8a833b0984174b03cd.png
接下来看一下如何使用。
2-2、使用阐明

以ArrayExtension为例:
https://i-blog.csdnimg.cn/direct/e20c986b01294158a3a35be468ebdd1c.png
实例代码:
using SK.Framework;
using System;
using System.Collections.Generic;
using UnityEngine;

public class UseExtension : MonoBehaviour
{
    List<Action> ActionList;
    void Start()
    {
      ActionList=new List<Action>();
      ActionList.Add(() => { Debug.Log("1"); });
      ActionList.Add(() => { Debug.Log("2"); });
      ActionList.Add(() => { Debug.Log("3"); });
      ActionList.Add(() => { Debug.Log("4"); });

      ActionList.ForEach((value) => { EventAction(value); });
    }

    void EventAction(Action value)
    {
      value.Invoke();
    }
}
结果:
https://i-blog.csdnimg.cn/direct/b905bcc8fd384ce29f8b6ed583832726.png
2-3、实现及代码分析

1、扩展类须要是静态的static
2、扩展函数也须要是静态的static
3、用this关键字后面跟着指定要扩展的类
public static class ArrayExtension
{
    public static T[] ForEach<T>(this T[] self, Action<T> action)
    {
      for (int i = 0; i < self.Length; i++)
            action(self);
      return self;
    }
}
三、后记

如果以为本篇文章有效别忘了点个关注,关注不迷路,持续分享更多Unity干货文章。
你的点赞就是对博主的支持,有题目记得留言:
博主主页有接洽方式。
博主另有跟多宝藏文章等候你的发掘哦:
专栏方向简介GameFramework框架框架Unity之GameFramework框架快速应用、使用阐明、源码分析等文章合集。Unity3D开发小游戏小游戏开发教程分享一些使用Unity3D引擎开发的小游戏,分享一些制作小游戏的教程。Unity3D从入门到进阶入门从自学Unity中获取灵感,总结从零开始学习Unity的门路,有C#和Unity的知识。Unity3D之UGUIUGUIUnity的UI系统UGUI全解析,从UGUI的基础控件开始讲起,然后将UGUI的原理,UGUI的使用全面教学。Unity3D之读取数据文件读取使用Unity3D读取txt文档、json文档、xml文档、csv文档、Excel文档。Unity3D之数据集合数据集合数组集合:数组、List、字典、堆栈、链表等数据集合知识分享。Unity3D之VR/AR(虚拟仿真)开发虚拟仿真总结博主工作常见的虚拟仿真需求举行案例解说。Unity3D之插件插件主要分享在Unity开发中用到的一些插件使用方法,插件介绍等Unity3D之一样平常开发一样平常记录主要是博主一样平常开发中用到的,用到的方法技巧,开发思路,代码分享等Unity3D之一样平常BUG一样平常记录记录在使用Unity3D编辑器开发项目过程中,碰到的BUG和坑,让后来人可以有些参考。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 【SKFramework框架焦点模块】3-5、函数扩展模块