Supponiamo che abbia una classe che è una raccolta di sola lettura o oggetti immutabili, ad es.
public class ReadOnlyInts : IReadOnlyCollection<int>
{
private readonly IReadOnlyCollection<int> intCollection;
public ReadOnlyInts(IEnumerable<int> ints)
{
intCollection = ints.ToList().AsReadOnly();
}
#region IReadOnlyCollection<int> Methods
// ...
#endregion
}
Ora, senza alcuni trucchetti da parte del consumatore, né intCollection
né i suoi membri possono cambiare, quindi il tipo è immutabile. Seguendo le linee guida MSDN , il tipo dovrebbe sovraccaricare ==
. Tuttavia, non è chiaro per me che queste linee guida siano destinate ad essere applicate alle raccolte poiché le collezioni incorporate .Net non sovrascrivono nemmeno .Equals
. Sono preoccupato quindi che sovraccaricare ==
come circa .SequenceEquals
sarà un comportamento non previsto per altri consumatori.
È una buona idea che le raccolte profondamente immutabili sovraccarichino ==
?