2012-06-12 11 views
6

Próbuję przekonwertować Ruby's time do C#, ale utknąłem teraz.Konwersja czasu Ruby do C#

Oto moja próba:

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

Jestem nowym C#, a może ten powinien być łatwy, a wiem, że chcesz używać Extensionmethods. Ale ponieważ funkcje nie są "pierwszej klasy" w C#, utknąłem na razie.

Więc, co ParameterType należy używać do od WhatGoesHere?

Odpowiedz

5

Można użyć typu Action:

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)); 
    } 
} 

Również spojrzeć here poznać delegatów.

+0

Dzięki! Nie wiedziałem o delegatach. –

+0

Nie ma problemu ..... – sloth