方法中的任意分配

时间:2017-12-30 05:43:54

标签: c# entity-framework

当我遇到一些奇怪的代码时,我正在浏览DbSet的内部:

private void CheckState()
{
    // ReSharper disable once AssignmentIsFullyDiscarded
    _ = EntityType;
}

注意_不会在他们使用新的C#7.0 Discard运算符的任何地方声明。为什么有人想做这样的事情?这样做有什么好处吗?

修改

private IEntityType EntityType
    {
        get
        {
            _context.CheckDisposed();

            if (_entityType != null)
            {
                return _entityType;
            }

            _entityType = _context.Model.FindEntityType(typeof(TEntity));

            if (_entityType == null)
            {
                throw new InvalidOperationException(CoreStrings.InvalidSetType(typeof(TEntity).ShortDisplayName()));
            }

            return _entityType;
        }
    }

1 个答案:

答案 0 :(得分:2)

这看起来像是具有副作用的属性get访问权限。您无法将属性分配给某个属性(或将其作为表达式传递)(对于get),或为其分配内容(对于set),您无法调用属性。他们不能只有:

EntityType;

他们所做的只是明确表示他们想要丢弃get的结果,大概是为了避免使用未使用的变量警告。