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

公司网站开发费计入办公费交换链接名词解释

公司网站开发费计入办公费,交换链接名词解释,建筑工程培训机构,seo页面优化平台1.扩展方法: 扩展方法允许向现有类型 “添加” 方法,而无需创建新的派生类型、重新编译或以其他方式修改原始类型。扩展方法是一种特殊的静态方法,但可以像实例方法一样进行调用。 使用场景: 1.当无法修改某个类的源代码&#…

1.扩展方法:

扩展方法允许向现有类型 “添加” 方法,而无需创建新的派生类型、重新编译或以其他方式修改原始类型。扩展方法是一种特殊的静态方法,但可以像实例方法一样进行调用。

使用场景:

1.当无法修改某个类的源代码,但又希望为该类添加一些实用方法时,扩展方法就非常有用。
2.为第三方库中的类型添加额外的功能。

实现:

1.基础实现

public class ExtensionTest : MonoBehaviour
{void Start(){MyClass obj = new MyClass(5);// 可以像调用实例方法一样调用扩展方法int result = obj.DoubleValue();Debug.Log($"Double value: {result}");}
}// 定义一个简单的类
public class MyClass
{public int Value { get; set; }public MyClass(int value){Value = value;}
}// 扩展方法必须定义在静态类中
public static class MyClassExtensions
{// 扩展方法必须是静态方法,且第一个参数使用 this 关键字指定要扩展的类型public static int DoubleValue(this MyClass myClass){return myClass.Value * 2;}
}

 结果:

2.链式扩展

public class ExtensionTest : MonoBehaviour
{void Start(){Person person = new Person("John", 25);// 链式调用扩展方法person.SetName("Alice").SetAge(30).PrintInfo();}
}// 定义一个简单的类
public class Person
{public string Name { get; set; }public int Age { get; set; }public Person(string name, int age){Name = name;Age = age;}public void PrintInfo(){Debug.Log($"Name: {Name}, Age: {Age}");}
}// 扩展方法类
public static class PersonExtensions
{// 扩展方法:设置姓名public static Person SetName(this Person person, string name){person.Name = name;return person;}// 扩展方法:设置年龄public static Person SetAge(this Person person, int age){person.Age = age;return person;}
}

结果:

 

2.钩子机制:

在 C# 中,钩子通常指的是在程序执行过程中预留的一些 “可插入点”,允许开发者在特定的时机插入自定义的逻辑。常见的实现方式有事件(Event)、抽象方法、委托等

使用场景:

1.当你需要在某个操作的前后执行自定义逻辑时,可以使用钩子。
2.实现插件化架构,允许开发者在系统的某些关键位置插入自定义的功能。

实现:

1.虚方法钩子:基类定义一个虚方法,该方法可以包含默认的实现逻辑,也可以为空。派生类重写这个虚方法,在其中添加自定义的逻辑。基类在执行某个算法时,会调用这个虚方法,这样派生类就可以在这个 “钩子点” 上插入自己的代码。

public class HookTest : MonoBehaviour
{// Start is called before the first frame updatevoid Start(){// 创建魔法师角色GameCharacter mage = new Mage();mage.Attack();Console.WriteLine();// 创建战士角色GameCharacter warrior = new Warrior();warrior.Attack();}
}public class HookTest : MonoBehaviour
{// Start is called before the first frame updatevoid Start(){// 创建魔法师角色GameCharacter mage = new Mage();mage.Attack();Console.WriteLine();// 创建战士角色GameCharacter warrior = new Warrior();warrior.Attack();}
}// 基类:游戏角色
public class GameCharacter
{// 虚方法,作为钩子public virtual void SpecialAbility(){Debug.Log("No special ability.");}// 角色的攻击方法,会调用钩子方法public void Attack(){Debug.Log("Character attacks!");SpecialAbility();}
}// 派生类:魔法师
public class Mage : GameCharacter
{// 重写虚方法,添加自定义逻辑public override void SpecialAbility(){Debug.Log("Mage casts a fireball!");}
}// 派生类:战士
public class Warrior : GameCharacter
{// 重写虚方法,添加自定义逻辑public override void SpecialAbility(){Debug.Log("Warrior uses a powerful shield bash!");}
}

结果:

2.事件钩子​:

public class HookTest : MonoBehaviour
{// Start is called before the first frame updatevoid Start(){MyProcessor processor = new MyProcessor();// 订阅事件,插入自定义逻辑processor.BeforeProcess += (sender, e) =>{Debug.Log("Before process: Custom logic executed.");};processor.AfterProcess += (sender, e) =>{Debug.Log("After process: Custom logic executed.");};processor.Process();}
}// 定义一个包含钩子的类
public class MyProcessor
{// 定义事件,作为钩子public event EventHandler BeforeProcess;public event EventHandler AfterProcess;public void Process(){// 在处理前触发事件BeforeProcess?.Invoke(this, EventArgs.Empty);Debug.Log("Processing...");// 在处理后触发事件AfterProcess?.Invoke(this, EventArgs.Empty);}
}

结果:

总结:

通过合理使用扩展方法和钩子方法,可以在保持外观模式简洁性的同时,提供强大的扩展能力。
1.扩展方法​​适合添加​​横向功能​​(如日志、监控)。
​2.​虚方法钩子​​适合调整​​核心流程​​
​​3.事件机制​​适合实现​​观察者模式​​的松散耦合
4.优先选择​​组合​​而非多层继承

http://www.dtcms.com/wzjs/295871.html

相关文章:

  • 阿里巴巴做实商网站的条件竞价托管外包费用
  • 企业网站seo实百度seo排名主要看啥
  • 企业网站建设合同书标准版百度自媒体怎么注册
  • 外贸做网站万网域名购买
  • 装饰公司网站建设seo搜索引擎优化总结
  • 创新网站内容建设百度不让访问危险网站怎么办
  • 网站建设设备清单百度网站怎么做
  • 游戏网站设计网站提交收录入口
  • 现在主流网站用什么做的广州新塘网站seo优化
  • html5网站制作实战移动惠生活app下载网址
  • 县政府网站建设方案公司如何在百度宣传
  • wordpress播放优酷视频南京seo排名优化
  • 为什么 要建设网站实时新闻热点
  • 水墨画风格网站百度信息流广告
  • wix做中文网站怎么样营销图片大全
  • 免费网站制作作业今日足球赛事推荐
  • 上海高凡猎头公司上海seo外包
  • 杭州网站建设交易专业seo网站优化推广排名教程
  • 网站开发人员岗位要求台州网站建设
  • 腾讯云网站备案流程图百度关键词推广一年多少钱
  • html制作一个个人主页网站谷歌搜索引擎免费入口镜像
  • 做网站,就上凡科建站谷歌推广公司哪家好
  • 烟台优化网站公司咸阳网站建设公司
  • 优秀的图片设计网站乐天seo培训中心
  • 营销建设网站制作下列关于友情链接说法正确的是
  • 广东专业网站建设报价友情链接的方式如何选择
  • 网站建设代码题全国培训机构排名前十
  • 做网站软件frontpage互联网营销师含金量
  • 网站中英文切换怎么做网站免费推广方式
  • 乐清网站推广制作电话营销