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

c#————扩展方法

关键点:

  1. 定义扩展方法的类和方法必须是静态的
    • 扩展方法必须在一个静态类中定义。
    • 扩展方法本身也必须是静态的。
  2. 第一个参数使用 this 关键字
    • 扩展方法的第一个参数指定要扩展的类型,并且在这个参数前加上 this 关键字。这个参数表示方法将应用于哪个类型的实例。
  3. 调用方式
    • 虽然扩展方法是静态方法,但你可以像调用实例方法一样调用它。
  4. 仅适用于引用类型、值类型和接口
    • 你不能为 nullvoid 或泛型类型参数定义扩展方法。
  5. 优先级
    • 如果扩展方法与类型本身的方法发生冲突(方法签名相同),那么类型本身的方法将优先被调用。
  6. 命名空间
    • 扩展方法必须在使用前通过 using 语句引入其命名空间。

代码例子:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public static class tools
{public static void AtLookTarget(this Transform obj,Transform target){Vector3 var = target.position - obj.position;obj.rotation = Quaternion.LookRotation(var);}
}

 使用扩展方法:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class siyausnhuchangyonff : MonoBehaviour
{public Transform lookA;public Transform lookB;void Update(){lookA.AtLookTarget(lookB);}
}

http://www.lryc.cn/news/479158.html

相关文章:

  • 前向-后向卡尔曼滤波器(Forward-Backward Kalman Filter)资料汇总
  • 云集电商:如何通过 OceanBase 实现降本 87.5%|OceanBase案例
  • 详解Rust标准库:BTreeMap
  • .NET WPF CommunityToolkit.Mvvm框架
  • 微信小程序使用阿里巴巴矢量图标库正确姿势
  • 【K8S问题系列 |1 】Kubernetes 中 NodePort 类型的 Service 无法访问【已解决】
  • Java基础Day-Thirteen
  • LangChain实际应用
  • 【数据结构】哈希/散列表
  • flutter 项目初建碰到的控制台报错无法启动问题
  • Java字符串深度解析:String的实现、常量池与性能优化
  • leetcode 2043.简易银行系统
  • 基于SSM(Spring + Spring MVC + MyBatis)框架的文物管理系统
  • yakit中的规则详细解释
  • [c语言]strcmp函数的使用和模拟实现
  • 如何把子组件的v-model修改数据,进行接收然后定义数据格式,子传父的实现
  • linux dpkg 查看 安装 卸载 .deb
  • 【算法】递归+深搜:105.从前序与中序遍历序列构造二叉树
  • ESP32 gptimer通用定时器初始化报错:assert failed: timer_ll_set_clock_prescale
  • 基于Python的旅游景点推荐系统
  • 【开源社区】ELK 磁盘异常占用解决及优化实践
  • 达梦数据守护集群_动态增加实时备库
  • 计算机基础:Ping、Telnet和SSH
  • Java教学新动力:SpringBoot辅助平台
  • 24/11/3 算法笔记 Adam优化器拆解
  • 浅谈语言模型推理框架 vLLM 0.6.0性能优化
  • 【大数据学习 | kafka高级部分】kafka中的选举机制
  • MySQL limit offset分页查询可能存在的问题
  • CODESYS可视化桌面屏保-动态气泡制作详细案例
  • 华为 Atlas500 Euler 欧拉系统操作指南