C# 感叹号作为索引器的一部分?
在.NETCore3.1中反编译了一本字典之后,我看到了奇怪的语法,我找不到任何关于它的信息 代码的作用是什么代码>在这种情况下是什么意思<代码>如果(i>=0)返回\u条目![i] .价值代码> 以下是索引器的完整代码,以了解更多上下文C# 感叹号作为索引器的一部分?,c#,.net-core,C#,.net Core,在.NETCore3.1中反编译了一本字典之后,我看到了奇怪的语法,我找不到任何关于它的信息 代码的作用是什么在这种情况下是什么意思如果(i>=0)返回\u条目![i] .价值 以下是索引器的完整代码,以了解更多上下文 public TValue this[TKey key] { get { int i = FindEntry(key); if (i >= 0) return _entries![i].value; Throw
public TValue this[TKey key]
{
get
{
int i = FindEntry(key);
if (i >= 0) return _entries![i].value;
ThrowHelper.ThrowKeyNotFoundException(key);
return default;
}
set
{
bool modified = TryInsert(key, value, InsertionBehavior.OverwriteExisting);
Debug.Assert(modified);
}
}
如果您能提供有关此项的任何信息/链接,我将不胜感激。这有助于明确告诉编译器,\u条目
不能为空引用
它是在C#8.0中引入a的范围中添加的。启用可为null的上下文时,所有引用类型都被识别为不可为null的引用类型。当引用可能为
null
时,编译器会生成警告<代码>运算符允许您告诉编译器特定引用在给定上下文中不能是null
这是否回答了您的问题?我做了搜索,但没有找到那个问题,谢谢!(为了避免重复,我将很快结束我的问题)