Rails 为 Ruby 引入了一些核心扩展,例如3.days.from_now
返回,正如您预计三天后的日期。使用 C# 中的扩展方法,我们现在可以做类似的事情:
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 之类的框架中?