windows C#-为枚举创建新方法

embedded/2024/12/23 2:34:00/

可使用扩展方法添加特定于某个特定枚举类型的功能。

示例

在下面的示例中,Grades 枚举表示学生可能在班里收到的字母等级分。 该示例将一个名为 Passing 的扩展方法添加到 Grades 类型中,以便该类型的每个实例现在都“知道”它是否表示合格的等级分。

using System;namespace EnumExtension
{// Define an extension method in a non-nested static class.public static class Extensions{public static Grades minPassing = Grades.D;public static bool Passing(this Grades grade){return grade >= minPassing;}}public enum Grades { F = 0, D=1, C=2, B=3, A=4 };class Program{static void Main(string[] args){Grades g1 = Grades.D;Grades g2 = Grades.F;Console.WriteLine("First {0} a passing grade.", g1.Passing() ? "is" : "is not");Console.WriteLine("Second {0} a passing grade.", g2.Passing() ? "is" : "is not");Extensions.minPassing = Grades.C;Console.WriteLine("\r\nRaising the bar!\r\n");Console.WriteLine("First {0} a passing grade.", g1.Passing() ? "is" : "is not");Console.WriteLine("Second {0} a passing grade.", g2.Passing() ? "is" : "is not");}/* Output:First is a passing grade.Second is not a passing grade.Raising the bar!First is not a passing grade.Second is not a passing grade.*/}
}

请注意,Extensions 类还包含一个动态更新的静态变量,并且扩展方法的返回值反映了该变量的当前值。 这表明在幕后,将在定义扩展方法的静态类上直接调用这些方法。 


http://www.ppmy.cn/embedded/147959.html

相关文章

【大语言模型】ACL2024论文-28 TTM-RE: 增强记忆的文档级关系抽取

【大语言模型】ACL2024论文-28 TTM-RE: 增强记忆的文档级关系抽取 目录 文章目录 目录文章信息摘要研究背景问题与挑战如何解决创新点算法模型实验效果推荐阅读指数:★★★★☆ 后记 文章信息 TTM-RE: 增强记忆的文档级关系抽取 摘要 本文提出了TTM-RE&#xff…

ESP8266 WiFi模块入门:搭建网络与测试实践

在物联网(IoT)应用中,设备联网是核心功能之一。而ESP8266串口WiFi ESP-01模块是一款低成本、功能强大的UART-WiFi透传模块,广泛应用于智能家居、工业控制等领域。本篇文章将从基础出发,讲解如何使用ESP8266模块进行WiF…

【教程】apache设置禁止通过IP访问,只能域名访问

转载请注明出处:小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你,欢迎[点赞、收藏、关注]哦~ 目录 背景说明 效果演示 配置步骤 背景说明 暴露IP容易被扫描,而且会被DDOS等攻击。而域名则由于经过了DNS解析,可以很方便的…

【自动化】Python SeleniumUtil 工具 开启开发者模式 自动安装油猴用户脚本等

【自动化】Python SeleniumUtil 工具 【Python】使用Selenium 操作浏览器 自动化测试 记录-CSDN博客文章浏览阅读58次。文章浏览阅读42次。【附件】Selenium chromedriver 驱动及浏览器下载。【附件】Selenium chromedriver 驱动及浏览器下载-CSDN博客。3.安装Chrome浏览器驱动…

宏任务和微任务

但是事件循环中并非只维护着一个队列,事实上是有两个队列: 宏任务队列(macrotask queue):ajax、setTimeout、setInterval、DOM监听、UI Rendering等 微任务队列(microtask queue):Promise的then回调、Mutation Observer APl、queu…

类似于GitHub的平台

当然有类似于GitHub的平台,这些平台提供了类似的代码托管、版本控制、协作开发等功能。以下是不少于20个的类似GitHub的平台: GitLab: 自托管的Git存储库管理工具,提供代码托管、版本控制、问题跟踪、CI/CD等功能。支持自建部署&a…

opencv # Sobel算子、Laplacian算子、Canny边缘检测、findContours、drawContours绘制轮廓、外接矩形

一、Sobel算子 案例图片 cv2.Sobel(src, ddepth, dx, dy, ksize3, scale1, delta0, borderTypeNone) 功能:用于计算图像梯度(gradient)的函数 参数: src: 输入图像,它应该是灰度图像。 ddepth: 输出图像的所需深度&am…

Linux驱动开发应用层 2 点亮一个LED

目录 先来聊聊sysfs sysfs的具备的优势 LED在哪里? 先来聊聊sysfs 我们下面首先简单聊一下sysfs。他很重要的原因是因为我们跟底下的设备打交道,就是可以透过我们的sysfs来操作我们底层的设备, sysfs是Linux内核中的一个虚拟文件系统&…