Exemple #1
0
 private static bool NotEqualsExtracted(WeakNeedle <T> left, WeakNeedle <T> right)
 {
     if (ReferenceEquals(left, null))
     {
         return(!ReferenceEquals(right, null));
     }
     return(ReferenceEquals(right, null) || NotEqualsExtractedExtracted(left, right));
 }
Exemple #2
0
        private static bool NotEqualsExtractedExtracted(WeakNeedle <T> left, WeakNeedle <T> right)
        {
            var leftValue = left.Value;

            if (left.IsAlive)
            {
                var rightValue = right.Value;
                return(!right.IsAlive || !EqualityComparer <T> .Default.Equals(leftValue, rightValue));
            }
            return(right.IsAlive);
        }
Exemple #3
0
 public bool Equals(WeakNeedle <T> other)
 {
     return(!ReferenceEquals(other, null) && EqualsExtractedExtracted(this, other));
 }