Mercurial > repos > IBBoard
changeset 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 | e98708559618 |
children | 374460a8d87c |
files | Limits/AbsoluteNumericLimit.cs Limits/AbstractLimit.cs |
diffstat | 2 files changed, 43 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Limits/AbsoluteNumericLimit.cs Tue Oct 20 19:48:37 2009 +0000 @@ -0,0 +1,23 @@ +// This file (AbsoluteNumericLimit.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.Limits +{ + /// <summary> + /// A limit of a specified number that does not vary with the number it is limited against. + /// </summary> + public class AbsoluteNumericLimit : AbstractLimit + { + public AbsoluteNumericLimit (int numericLimit) : base(numericLimit) + { + } + + public override int GetLimit (int size) + { + return (int)Limit; + } + } +}
--- a/Limits/AbstractLimit.cs Sun Oct 11 19:58:02 2009 +0000 +++ b/Limits/AbstractLimit.cs Tue Oct 20 19:48:37 2009 +0000 @@ -36,5 +36,25 @@ /// 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; + } + } }