Sprache: C#
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.
[b]Verwendungsbeispiel[/b]
[code]
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");
}
}
[/code]
/// <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);
}
}
/// <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);
}
}
Alte URL:
/snippet/generische-between-methode/1044
Das erinnert mich stark an meine Extension-Methode Limit.
http://dotnet-forum.de/KnowledgeBase/articles/2008/07/01/305-extension-methods-c-3-spracherweiterung-am-beispiel-eines-value-limiters.aspx
Hab ich nicht gesehen, sorry. Ich durchsuche normalerweise nicht alle Community Seiten bevor ich ein Snippet adde…
Macht nichts, sollte auch kein Vorwurf sein – mehr Eigenwerbung. *fg*