Viyi.Util/Extensions/ObjectExtensions.Also.cs
(开头部分) 1KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
namespace Viyi.Util.Extensions;
public static partial class ObjectExtensions {
/// <summary>调用 `fn`,并返回自身</summary>
/// <remarks>
/// 通常用于在函数试编程中的链式调用,
/// 也常使用 `?.` 调用来排除调用者值为 `null` 的情况。
/// </remarks>
public static T Also<T>(this T it, Action<T> fn) {
fn(it);
return it;
}
/// <summary>调用 `fn`,并返回自身</summary>
/// <remarks>
/// 通常用于在函数试编程中的链式调用,
/// 也常使用 `?.` 调用来排除调用者值为 `null` 的情况。
/// </remarks>
public static T Also<T, R>(this T it, Func<T, R> fn) {
fn(it);
return it;
}
/// <summary>调用 `fn`,并返回自身</summary>
public static ref T RefAlso<T>(ref this T it, Action<T> fn) where T : struct {
fn(it);
return ref it;
}
/// <summary>调用 `fn`,并返回自身</summary>
public static ref T RefAlso<T, R>(ref this T it, Func<T, R> fn) where T : struct {
fn(it);
return ref it;
}
/// <summary>调用 `fn`,并返回自身</summary>
/// <remarks>
/// 通常用于在函数试编程中的链式调用,
/// 也常使用 `?.` 调用来排除调用者值为 `null` 的情况。
/// </remarks>
public static ref T? RefAlso<T>(ref this T? it, Action<T?> fn) where T : struct {
fn(it);
return ref it;
}
/// <summary>调用 `fn`,并返回自身</summary>
/// <remarks>
/// 通常用于在函数试编程中的链式调用,
/// 也常使用 `?.` 调用来排除调用者值为 `null` 的情况。
/// </remarks>
public static ref T? RefAlso<T, R>(ref this T? it, Func<T?, R> fn) where T : struct {
fn(it);
return ref it;
}
/// <summary>Also 的异步版本</summary>
public static async ValueTask<T> AlsoAsync<T>(this T it, Func<T, ValueTask> fn) {
await fn(it);
return it;
}
后面还有 1 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
