#if FAT using System; using System.Collections.Generic; namespace LinqInternal.Threading.Needles { [System.Diagnostics.DebuggerNonUserCode] internal sealed class DefaultNeedle : IReadOnlyNeedle { private static readonly DefaultNeedle _instance = new DefaultNeedle(); private DefaultNeedle() { //Empty } public static DefaultNeedle Instance { get { return _instance; } } bool IReadOnlyNeedle.IsAlive { get { return true; } } public T Value { get { return default(T); } } public static explicit operator T(DefaultNeedle needle) { if (needle == null) { throw new ArgumentNullException("needle"); } return needle.Value; } public static bool operator !=(DefaultNeedle left, DefaultNeedle right) { return false; } public static bool operator ==(DefaultNeedle left, DefaultNeedle right) { return true; } public override bool Equals(object obj) { return obj is DefaultNeedle; } public override int GetHashCode() { return EqualityComparer.Default.GetHashCode(default(T)); } public override string ToString() { return Value.ToString(); } } } #endif