Viyi.Util/Extensions/ObjectExtensions.Take.cs

(完整代码) 1KB

namespace Viyi.Util.Extensions;

public static partial class ObjectExtensions {
    /// <summary>
    /// 如果给定断言成立,则返回对象/数值,否则返回默认值
    /// </summary>
    public static T? TakeIf<T>(this T me, Func<T, bool> predicate) where T : class {
        return predicate(me) ? me : null;
    }

    /// <summary>
    /// 如果给定条件成立,则返回对象/数值,否则返回默认值
    /// </summary>
    public static T? TakeIf<T>(this T me, bool condition) where T : class {
        return condition ? me : null;
    }

    /// <summary>
    /// 如果给定断言不成立,则返回对象/数值,否则返回默认值
    /// </summary>
    public static T? TakeUnless<T>(this T me, Func<T, bool> predicate) where T : class {
        return predicate(me) ? default : me;
    }

    /// <summary>
    /// 如果给定条件不成立,则返回对象/数值,否则返回默认值
    /// </summary>
    public static T? TakeUnless<T>(this T me, bool condition) where T : class {
        return condition ? default : me;
    }
}

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读

登录后可用,每次 10 积分,解读结果公开显示在下面。

还没有人解读过这个文件。