public override int GetHashCode()
            {
                int        hashCode   = this.entity.GetHashCode();
                TCountType tcountType = this.measure;

                return(hashCode ^ tcountType.GetHashCode());
            }
            public bool Equals(CountTracker <TEntityType, TCountType> .EntityKey key)
            {
                if (object.ReferenceEquals(null, key))
                {
                    return(false);
                }
                TCountType tcountType = this.measure;

                return(tcountType.Equals(key.measure) && this.entity.Equals(key.entity));
            }
 public void RaiseEvent(TCountType count)
 {
     if (this.measureBased)
     {
         if (this.measure != null)
         {
             TCountType value = this.measure.Value;
             if (!value.Equals(count))
             {
                 return;
             }
         }
         this.measureDelegate(count);
     }
 }
 public EntityKey(IEntityName <TEntityType> entity, TCountType measure)
 {
     this.entity  = entity;
     this.measure = measure;
 }