[英]Is there a built-in ExpectNonNull?
在我的代碼中,當某些東西被聲明為可空時,但我希望它在運行時是非空的,我可以這樣做:
someObject.ExpectNonNull().SomeMember
ExpectNonNull 是這樣實現的:
[return: NotNull]
public static T ExpectNonNull<T>(
[NotNull] this T? arg,
[CallerArgumentExpression(nameof(arg))] string arg_name = ""
)
where T : class
{
if (arg is null)
throw new ArgumentNullException(
arg_name,
$"The argument `{arg_name}` with type {typeof(T).Name} is expected to be non-null, but is null."
);
return arg;
}
(還有一個值類型的版本。)
.NET 本身是否內置了類似的東西?
從 .NET 6 開始,您至少可以將ArgumentNullException.ThrowIfNull
用於您所追求的某些方面:
public void SomeMethod(string text)
{
ArgumentNullException.ThrowIfNull(text);
// Use text here, confident that it's not null
}
它不允許您使用那種流暢的方法,但在某些情況下,這就是您所需要的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.