当前位置: 首页 > news >正文

【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()这种用小数点来连接的方式来调用到该扩展函数,就好似为这个类添加了一个成员函数一般,非常地方便。

函数扩展模块主要是存放扩展函数的合集模块。

按照类型进行分类:
在这里插入图片描述
接下来看一下如何使用。

2-2、使用说明

以ArrayExtension为例:

在这里插入图片描述
实例代码:

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();}
}

结果:
在这里插入图片描述

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[i]);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和坑,让后来人可以有些参考。
http://www.lryc.cn/news/499856.html

相关文章:

  • 使用 EasyExcel 提升 Excel 处理效率
  • 【提高篇】3.7 GPIO(七,GPIO开发模型 一)
  • Webpack Tree Shaking 技术原理及应用实战,优化代码,精简产物
  • angular19-官方教程学习
  • RocketMQ集群部署完整指南
  • 解决mysql 内存持续上涨问题
  • Qt 小项目 学生管理信息系统
  • 16-01、JVM系列之:内存与垃圾回收篇(一)
  • 聊聊系统的弹力设计-服务器性能指标篇(一)
  • MQ:kafka-消费者的三种语义
  • 中国1km分辨率SSP119情景(SSP119、SSP245 SSP585),模式逐月降水量数据集(2021-2100)
  • 21天掌握javaweb-->第8天:前后端分离架构与Axios请求
  • 基于阻塞队列的生产者消费者模型动画演示
  • DHCP和BOOTP选项及DHCP协议操作详解
  • 数据结构--链表和单链表详解及实现
  • vue3基础知识
  • 【Linux系统】Ubuntu 缓冲区机制
  • ChatGPT 最新推出的 Pro 订阅计划,具备哪些能力 ?
  • 数据结构理论
  • es 3期 第14节-全文文本分词查询
  • 六安市第二届网络安全大赛复现
  • Sarcomere仿人灵巧手ARTUS,20个自由度拓宽机器人作业边界
  • Django drf 基于serializers 快速使用
  • pycharm集成环境中关于安装sklearn库报错问题分析及解决
  • AI - 浅聊一下基于LangChain的AI Agent
  • 《【Linux】深入理解进程管理与 fork 系统调用的实现原理》
  • docker-compose部署skywalking 8.1.0
  • AI 总结的的 AI 学习路线
  • 离散傅里叶级数(DFS)详解
  • Java 类加载机制详解