1

我正在研究Entity Framework源代码,?.在这个项目中发现了很多符号。我无法理解 的功能?.

例如,我们可以?.在下面找到符号DbContext.cs

public virtual void Dispose()
{
    _disposed = true;
    _serviceScope?.Dispose();
    _setInitializer = null;
    _changeTracker = null;
    _stateManager = null;
    _changeDetector = null;
    _graphAttacher = null;
    _model = null;
}
4

2 回答 2

4

?.运算符是 C#6 中的一个新结构,称为“空条件”运算符

通过使用它,只有在is notDispose()时才会执行。否则,您将面临抛出 ._serviceScopenullNullReferenceException

于 2016-04-07T01:41:03.680 回答
1

它是 If _serviceScope is not null then _serviceScope.Dispose(); 的快捷方式

供您参考,它在新的c# 6.0中作为空条件运算符引入

于 2016-04-07T01:40:43.697 回答