Mercurial > repos > IBBoard
view Limits/AbstractLimit.cs @ 51:c3b217a708f4
Re #24: Add limits
* Add an absolute limit that isn't affected by the number it is a limit against
* Add hashcode and equals implementations
author | IBBoard <dev@ibboard.co.uk> |
---|---|
date | Tue, 20 Oct 2009 19:48:37 +0000 |
parents | a177a3750acd |
children | 1e5080813ac5 |
line wrap: on
line source
// This file (AbstractLimit.cs) is a part of the IBBoard project and is copyright 2009 IBBoard // // The file and the library/program it is in are licensed under the GNU LGPL license, either version 3 of the License or (at your option) any later version. Please see COPYING.LGPL for more information and the full license. using System; namespace IBBoard { /// <summary> /// The abstract base class for all limits /// </summary> public abstract class AbstractLimit { private double limit; public AbstractLimit (double limitNum) { limit = limitNum; } protected double Limit { get { return limit; } } /// <summary> /// Gets the limited number, based on the limit that this <code>Limit</code> represents and the number it is limiting (<code>size</code>). /// </summary> /// <param name="size"> /// The number to be limited /// </param> /// <returns> /// the limited number, as defined by the implementation of the limit /// </returns> public abstract int GetLimit(int size); public override int GetHashCode () { int hash = GetType().GetHashCode(); hash+= Limit.GetHashCode(); return hash; } public override bool Equals (object obj) { bool equal = false; if (obj != null && GetType().Equals(obj.GetType())) { equal = (Limit == ((AbstractLimit)obj).Limit); } return equal; } } }