Ich war auf der Suche durch die Interna von DbSet, wenn ich über einige wierd Code kam:willkürliche Zuordnung in Methode
private void CheckState()
{
// ReSharper disable once AssignmentIsFullyDiscarded
_ = EntityType;
}
Hinweis _ nicht überall wird erklären, dass sie die neuen C# 7.0 Discard Operator verwenden. Warum sollte jemand so etwas tun wollen? Hat das einen Vorteil?
bearbeiten
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;
}
}
Um ReSharper Warnungen zu unterdrücken, nehme ich an. Wenn es die Methode so einfach aufruft, wird ReSharper Sie daran erinnern, dass es einen unbenutzten Rückgabewert gibt. – Sweeper
Unmöglich zu sagen, ohne den Rest des Codes zu sehen. Aber wenn 'EntityType' eine Eigenschaft ist, ist es möglich, dass der Getter einige Nebeneffekte hat, die der Code-Autor wünscht (keine gute Eigenschaft für einen Eigenschaften-Getter, aber so sind die Dinge manchmal). (Da sich herausstellt, dass Ihr Link direkt zu dem Modul führt, in dem die Eigenschaft definiert ist, kann ich sehen, dass diese Eigenschaft tatsächlich einen Wert zwischenspeichert. Daher ist es möglich, dass der Autor den Wert abfragen und/oder validieren möchte.) Alles, was wir anbieten können, sind Meinungen; nur der Autor dieses Codes kann Ihnen sicher sagen, warum sie es getan haben. –
Es gibt einen Link zu dem Code in der Frage auf GitHub –