这是我在这里的第一个问题。我在C#中遇到了这样的方法:
void Do(string action!) { ... }不知道action之后的!是什么,它做到了。你能帮我理解一下吗?
发布于 2021-04-08 17:24:48
这被命名为!操作符,它可以定位在参数列表中的任何标识符之后,这将导致C#编译器为该参数发出标准的null检查代码。例如:
void Do(string action!) { ... }将被翻译成:
void Do(string action!) {
if (action is null) {
throw new ArgumentNullException(nameof(action));
}
...
}顺便说一句,目前这个功能还不可用。你可以找到更多信息here。
发布于 2021-04-08 17:26:14
https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/operators/null-forgiving
您可以使用允许null的运算符声明引用类型的表达式x不为null
https://stackoverflow.com/questions/67001003
复制相似问题