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

C# 范围判断函数

封装范围函数

public static class CommonUtil
{
    /// <summary>
    /// 范围判断函数,检查给定的值是否在指定的最小值和最大值之间。
    /// 例如,可以用来判断当前日期是否在开始日期和结束日期之间。
    /// 该方法适用于任何实现了 IComparable 接口的类型,比如 int、double、DateTime 等等。
    /// </summary>
    /// <typeparam name="T">实现了 IComparable 接口的泛型类型参数</typeparam>
    /// <param name="value">要比较的值</param>
    /// <param name="min">范围的最小值</param>
    /// <param name="max">范围的最大值</param>
    /// <returns>如果 value 在 min 和 max 之间,则返回 true;否则返回 false</returns>
    public static bool Between<T>(T value, T min, T max) where T : IComparable<T>
    {
        // 使用 CompareTo 方法比较 value、min 和 max 的大小关系
        // value 必须大于或等于 min,并且小于或等于 max
        // 这里可以根据实际业务场景需求调整
        return value.CompareTo(min) >= 0 && value.CompareTo(max) <= 0;
    }
}

调用

class Program
{
    static void Main(string[] args)
    {
        // 测试数字
        int num = 5;
        if (CommonUtil.Between(num, 1, 10))
        {
            Console.WriteLine($"{num} 在 1 和 10 之间。");
        }
        else
        {
            Console.WriteLine($"{num} 不在 1 和 10 之间。");
        }

        // 测试日期
        DateTime startDate = new DateTime(2024, 9, 25);
        DateTime endDate = new DateTime(2024, 10, 25);
        DateTime currentDate = DateTime.Now;

        if (CommonUtil.Between(currentDate, startDate, endDate))
        {
            Console.WriteLine($"当前日期在 {startDate.ToShortDateString()} 和 {endDate.ToShortDateString()} 之间。");
        }
        else
        {
            Console.WriteLine($"当前日期不在 {startDate.ToShortDateString()} 和 {endDate.ToShortDateString()} 之间。");
        }
    }
}

参考链接

封装一个 C# 范围判断函数,从此告别重复编写范围判断代码的烦恼

封装一个 C# 范围判断函数,从此告别重复编写范围判断代码的烦恼icon-default.png?t=O83Ahttps://mp.weixin.qq.com/s?__biz=Mzg4MjE3ODM0NA==&mid=2247485006&idx=1&sn=83fd667363a027e08a583adc92c3658f&chksm=cecc1bc6c71a5ad62b4331bfde7ba64999bd2faf0c369b394dc8a39b6b54577f07d8198d31df&mpshare=1&scene=1&srcid=1221kdLvuqpkAKIlHdvZdp7C&sharer_shareinfo=7ff4525f9f54fccf522f5e2abe77e42a&sharer_shareinfo_first=56b292a8c8ffce83f922a7e2e4d64eab#rd特此记录

anlog

2024年12月22日


http://www.kler.cn/a/449810.html

相关文章:

  • Linux文件目录 --- 移动和改名命令MV、强制移动、试探性移动过、按时间移动
  • WebAssembly与WebGL结合:高性能图形处理
  • 服务器证书原理
  • PyTorch 神经网络回归(Regression)任务:关系拟合与优化过程
  • STM32HAL库中RTC闹钟设置时分秒,年月日
  • MySQL数据库——复制表数据与结构
  • 嵌入式Linux QT+OpenCV基于人脸识别的考勤系统 项目
  • 【Where语法全解密】.NET开源ORM框架 SqlSugar 系列
  • 【DOCKER】基于DOCKER的服务之DUFS
  • Java Web 开发学习中:过滤器与 Ajax 异步请求
  • 汽车IVI中控开发入门及进阶(45):凌阳科技车载娱乐芯片
  • 备忘一个FDBatchMove数据转存的问题
  • 驱动性能提升,如何加速基于龙蜥和企业平台的Arm系统开发与部署进程?
  • 通航飞机(通用航空飞机)的软件关键技术
  • 【多模态】swift-3框架使用
  • [react]suspend 组件搭配路由组件时fallback不生效
  • 基于Spring Boot的茶叶商城系统
  • Java基础 | 数据库的命名规范
  • golang断言
  • Android Bootable Recovery 中的 `imgdiff.cpp` 文件解析
  • Zabbix6.0升级为6.4
  • 使用Vue创建前后端分离项目的过程(前端部分)
  • OpenCV(python)从入门到精通——文件操作
  • CSS系列(32)-- Mask详解
  • 玩安卓-鸿蒙版 二 首页横幅、搜索、跳转链接功能
  • STM32的内存分区