Feedback

C# - Generische Between Methode

Veröffentlicht von am 09.12.2008
(1 Bewertungen)
Immer wieder benötigt man Codefragmente die prüfen ob ein Wert zwischen 2 bestimmten liegt. Diese kleine Methode übernimmt genau diese Aufgabe in Zukunft.

Verwendungsbeispiel

private void button1_Click(object sender, EventArgs e)
{
if (Helper.Instance.IsBetween<int>(5, 1, 20))
MessageBox.Show("Treffer");
else
MessageBox.Show("Schade, leider daneben");
}
}

    /// <summary>
    /// Singleton Class that holds custom helper methods
    /// </summary>
    public class Helper
    {
        /// <summary>
        /// Singleton Helper Class
        /// </summary>
        public static readonly Helper Instance = new Helper();
        private Helper()
        {
        }
        /// <summary>
        /// Prüft ob value zwischen den übergebenen Grenzen liegt oder einer dieser entspricht
        /// </summary>
        /// <typeparam name="T">Typ der Prüfung muss IComparable implementieren</typeparam>
        /// <param name="value">Wert der geprüft werden soll</param>
        /// <param name="lowest">Mindestwert der eine positive Prüfung ergibt</param>
        /// <param name="highest">Maximalwert der eine positive Prüfung ergibt</param>
        /// <returns></returns>
        public bool IsBetween<T>(T value, T lowest, T highest) where T : IComparable
        {
            return (Comparer<T>.Default.Compare(lowest, value) <= 0 && Comparer<T>.Default.Compare(highest, value) >= 0);
        }
    }
Abgelegt unter Between, C#, Prüfung, >, <, größer, kleiner, gleich, Generic, helper, utility.

3 Kommentare zum Snippet

Rainer Hilmer schrieb am 09.12.2008:
Das erinnert mich stark an meine Extension-Methode Limit<T>.
http://dotnet-forum.de/KnowledgeBase/articles/2008/07/01/305-extension-methods-c-3-spracherweiterung-am-beispiel-eines-value-limiters.aspx
Thorsten Hans schrieb am 10.12.2008:
Hab ich nicht gesehen, sorry. Ich durchsuche normalerweise nicht alle Community Seiten bevor ich ein Snippet adde...
Rainer Hilmer schrieb am 10.12.2008:
Macht nichts, sollte auch kein Vorwurf sein - mehr Eigenwerbung. *fg*
 

Logge dich ein, um hier zu kommentieren!