Rails представила некоторые основные расширения Ruby как 3.days.from_now
, которые возвращаются, как и ожидалось, в будущем три дня. С помощью методов расширения в С# мы можем теперь сделать что-то подобное:
static class Extensions
{
public static TimeSpan Days(this int i)
{
return new TimeSpan(i, 0, 0, 0, 0);
}
public static DateTime FromNow(this TimeSpan ts)
{
return DateTime.Now.Add(ts);
}
}
class Program
{
static void Main(string[] args)
{
Console.WriteLine(
3.Days().FromNow()
);
}
}
Или как насчет:
static class Extensions
{
public static IEnumerable<int> To(this int from, int to)
{
return Enumerable.Range(from, to - from + 1);
}
}
class Program
{
static void Main(string[] args)
{
foreach (var i in 10.To(20))
{
Console.WriteLine(i);
}
}
}
Является ли это принципиально неправильным, или есть времена, когда это хорошая идея, например, в рамках Rails?