这是我在这里的第一个问题。 我在C#中遇到了这样的一种方法:
void Do(string action!) { ... }
我不明白在action
后面的!
是什么意思以及它的作用。你能帮我理解吗?
这被称为感叹号操作符!
,可以放置在参数列表中的任何标识符之后,这将导致C#
编译器为该参数发出标准的空检查代码。例如:
void Do(string action!) { ... }
Will be translated into:
void Do(string action!) {
if (action is null) {
throw new ArgumentNullException(nameof(action));
}
...
}
顺便说一句,目前这个功能还不可用。您可以在这里找到更多信息。
https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/operators/null-forgiving
null!
和 p!.Name
- gimlichael