江桥做网站wordpress厨房家居主题

张小明 2026/1/11 7:57:50
江桥做网站,wordpress厨房家居主题,重庆建设工程信息官网,光明新区建设网站文章目录一.、拓展方法概念二、拓展方法定义三、拓展方法使用四、拓展方法具体示例#xff1a;五、拓展方法原则总结六、注意事项一.、拓展方法概念 拓展方法允许你向现有的类型#xff08;包括 .NET Framework 中的类型或你引用的第三方库中的类型#xff09;添加五、拓展方法原则总结六、注意事项一.、拓展方法概念拓展方法允许你向现有的类型包括 .NET Framework 中的类型或你引用的第三方库中的类型添加新的方法而无需修改原始类型的源代码、创建新的派生类型或使用继承。它提供了一种在类外部扩展类功能的途径。本质上拓展方法是一种特殊的静态方法但调用语法看起来就像是该类型本身的实例方法一样。二、拓展方法定义定义拓展方法需要满足以下条件静态类 方法必须定义在一个静态类中。静态方法 方法本身必须是静态的。修饰符 方法的第一个参数必须使用this关键字修饰该参数的类型指定了扩展的类型。示例如下namespaceExtensionMethods.Extensions{publicstaticclassExtensionMethods{publicstaticboolisGreatThan(thisinti,intj){returnij;}}}该代码定义了一个在静态类ExtensionMethods中的返回值为布尔类型、拓展类型为int类型、并需要传入另一个int类型的参数进行比较的拓展方法若拓展类型的数据值大于传入数据的值则返回true。三、拓展方法使用一旦定义了拓展方法并在其命名空间可见通常需要添加using指令引入包含该静态类的命名空间就可以像调用该类型的普通实例方法一样使用它示例如下usingExtensionMethods.Extensions;classProgram{staticvoidMain(){inti100;boolresulti.isGreatThan(99);Console.WriteLine(result.ToString());}}四、拓展方法具体示例publicstaticclassListExtensions{publicstaticdoubleMidiumNum(thisListintnumbers){if(numbersnull||numbers.Count0){thrownewArgumentException(列表为空或为null);}numbers.Sort();intsizenumbers.Count;intmidsize/2;if(size%2!0)// 奇数个{returnnumbers[mid];}else// 偶数个{return(numbers[mid-1]numbers[mid])/2.0;}}}使用ListintdatanewListint{1,3,5,2,4};doublemidiumValuedata.MidiumNum();Console.WriteLine(midiumValue);// 输出: 3五、拓展方法原则总结C#只支持扩展方法不支持扩展属性、扩展事件、扩展操作符等。扩展方法必须在非泛型的静态类中声明扩展方法必须有一个参数而且只有第一个参数使用this标记。C#编译器查找静态类中的扩展方法时要求这些静态类本身必须具有文件作用域。C#编译要求“导入”扩展方法。静态方法可以任意命名C#编译器在寻找方法时需要花费时间进行查找需要检查文件作用域中的所有的静态类并扫描它们的所有静态方法来查找一个匹配多个静态类可以定义相同的扩展方法。用一个扩展方法扩展一个类型时同时也扩展了派生类型。六、注意事项优先级 如果类型本身已经有一个签名相同的方法同名且参数兼容实例方法总是优先于拓展方法被调用。命名空间可见性 拓展方法仅在包含其静态类的命名空间可见。使用时需要using相应的命名空间。无法访问私有成员 拓展方法只能访问目标类型的公共成员字段、属性、方法等就像该类型的其他外部代码一样。它不能访问私有或受保护的成员。空引用问题 在拓展方法内部如果this参数即调用实例是null仍然可以访问它因为它是静态方法的一个参数但试图访问该实例的成员会导致NullReferenceException。方法内部应自行处理null的情况。谨慎使用 过度使用拓展方法可能导致代码难以理解和维护特别是当它们掩盖了类型本身的功能或与未来的框架更新冲突时。优先考虑使用继承、组合或修改原始代码来添加功能。编译时静态绑定 拓展方法的调用是在编译时根据变量的静态类型解析的而不是运行时对象的实际类型。这与虚方法调用不同。无法为接口定义默认实现 在C# 8.0之前无法直接为接口定义拓展方法作为默认实现。C#8.0引入了接口的默认实现也称为接口成员实现这是不同的概念。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

广州网站建设哪家专业怎样建网站邢台

在 2025 年的技术洪流中,开发者面临的最大的挑战不再是“如何写出代码”,而是“如何处理过度膨胀的逻辑债务”。 当大家还在讨论哪个模型的代码通过率更高时,真正的一线极客已经开始利用 Gemini 3.0 Pro 开启了一场“降维打击”。凭借其原生…

张小明 2026/1/9 3:05:13 网站建设

学校网站建设工作简报那个企业网站是用vue做的

目录 说明: 3 Spring IoC容器和Bean介绍 4 容器概述 4 配置元数据 5 XML 9 作为外部配置DSL 9 构建基于XML的配置元数据 10 使用容器 11 Bean概述 12 重写bean 13 命名Bean 13 在 Bean 定义之外别名一个 Bean 13 实例化bean 14 使用构造函数实例化 14 使用静态…

张小明 2026/1/9 20:22:00 网站建设

金阊企业建设网站公司网络营销服务公司有哪些

医院设备 目录 基于springboot vue医院设备系统 一、前言 二、系统功能演示 三、技术选型 四、其他项目参考 五、代码参考 六、测试参考 七、最新计算机毕设选题推荐 八、源码获取: 基于springboot vue医院设备系统 一、前言 博主介绍:✌️大…

张小明 2026/1/9 16:10:54 网站建设

网站ip地址向谁购买免费建网站推广

Azure 会定期停用旧版服务、API 或功能。提前了解这些 Retirement 通知对于规划迁移、避免业务中断至关重要。本文介绍如何通过 Azure Service Health 查看和订阅服务停用通知。 什么是 Service Health? Azure Service Health 是一个免费服务,提供以下信息: 类型 说明 Ser…

张小明 2026/1/10 7:36:46 网站建设

广西建网站公司家用电脑做网站教程

目录具体实现截图项目开发技术介绍PHP核心代码部分展示系统结论源码获取/同行可拿货,招校园代理具体实现截图 本系统(程序源码数据库调试部署讲解)带文档1万字以上 同行可拿货,招校园代理 Thinkphp和Laravel_vue扶贫农产品网上云超市购物商城系统 …

张小明 2026/1/9 12:18:59 网站建设

网站建设可以在里面装东西Wordpress 图片之间空隙

第一章:Agent安全逻辑失效会引发核事故吗?在高度自动化的工业控制系统中,Agent作为执行监控与决策的关键组件,其安全逻辑的完整性直接关系到物理世界的运行安全。当Agent的安全校验机制因设计缺陷或恶意攻击而失效时,理…

张小明 2026/1/9 13:31:21 网站建设