的 是什么意思?意思是“返回默认值!;” 在 C# 日志记录实现中?

Cau*_*ere 2 c#

在创建自定义记录器示例IDisposable BeginScope<TState>(TState state);中,接口的功能ILogger被实现为return default!;没有解释BeginScope甚至是什么以及为什么default!使用。

我特别感兴趣为什么!这里使用 null 宽容运算符。

public IDisposable BeginScope<TState>(TState state) => default!;
Run Code Online (Sandbox Code Playgroud)

Cau*_*ere 5

!运算符是null-forgiving-operator在 C# 8.0 中引入的。它将事物标记为永不为空,并指示编译器跳过空检查,这样您就不会收到“可以为空”警告。当您知道变量在代码中的某个位置永远不会为空时,特别是在您使用 来将null-able operator ?变量指定为可为空之后,它会很有用。