Feedback

C# - "for" mal anders

Veröffentlicht von am 3/26/2010
(3 Bewertungen)
Eine for-Schleife als int Extension.
Die eigentliche Aktion wird als Block mit dem action<T> delegate übergeben.
public static void Times(this int count, Action<int> action)
{
    for (int i = 0; i < count; i++)
    {
        action(i);
    }
} 
Abgelegt unter extension.

5 Kommentare zum Snippet

Christopher Kk schrieb am 3/26/2010:
Willst du wirklich das dass Aufrufende int Objekt auch als Zählervariable genutzt wird seh ich das richtig? Oder willst du folgendes machen?

public static void Times(this int value,int count, Action<int> action)
{
for (int i = 0; i < count; i++)
{
action(i);
}
}

Sodass du

int i = 0;
i.Times(10,Console.Writeline);

So würde zwar 10 mal 0 ausgeben werden aber auch bei deiner Extension ist es ja ohne Side Effects.
Christopher Kk schrieb am 3/26/2010:
Sorry ich meinte das bei dem Ersten Code Beispiel natürlich so

public static void Times(this int value,int count, Action action)
{
for (int i = 0; i < count; i++)
{
action(value);
}
}
Christopher Kk schrieb am 3/27/2010:
Jo stimmt, ok dann ist alles klar.
Christopher Kk schrieb am 3/28/2010:
Hmm das ist ganz ehrlich gesagt irgendwie mit der Kirche ums Dorf :D Dafür gibts wirklich bessere Methoden, ohne vorher über den Count zu gehen.
Christopher Kk schrieb am 3/29/2010:
Richtig nur hat Columbus den Seeweg nicht neu erfunden ;)
 

Logge dich ein, um hier zu kommentieren!