Both of these generate an error saying they must be a compile-time constant:
void Foo(TimeSpan span = TimeSpan.FromSeconds(2.0)) void Foo(TimeSpan span = new
TimeSpan is a special case for the DefaultValueAttribute and is specified using any string that can be parsed via the TimeSpan.Parse method.
TimeSpan
DefaultValueAttribute
TimeSpan.Parse
[DefaultValue("0:10:0")] public TimeSpan Duration { get; set; }