2012-06-12 10 views
6

Ich versuche Rubys time in C# umzuwandeln, aber ich stecke jetzt fest.Konvertiere Rubys Zeiten in C#

Hier ist mein Versuch:

public static class Extensions 
{ 
    public static void Times(this Int32 times, WhatGoesHere?) 
    { 
     for (int i = 0; i < times; i++) 
      ??? 
    } 
} 

Ich bin neu in C#, und vielleicht sollte dies eine leicht sein, und ich weiß, ich will Extension verwenden. Aber da Funktionen in C# nicht "erstklassig" sind, stecke ich jetzt fest.

Also, welchen Parametertyp sollte ich für WhatGoesHere verwenden?

Antwort

5

können Sie verwenden, um die Action Typ:

public static class Extensions 
{ 
    public static void Times(this Int32 times, Action<Int32> action) 
    { 
     for (int i = 0; i < times; i++) 
      action(i); 
    } 
} 

class Program 
{ 
    delegate void Del(); 

    static void Main(string[] args) 
    { 
     5.Times(Console.WriteLine); 
     // or 
     5.Times(i => Console.WriteLine(i)); 
    } 
} 

auch einen Blick haben here bis Delegierten zu lernen.

+0

Danke! Ich wusste nichts von Delegierten. –

+0

Kein Problem ..... – sloth