【问题标题】:Why 10675199.02:48:05.4775807 TimeSpan Maximum for CompilationSection?为什么 CompilationSection 的最大时间跨度为 10675199.02:48:05.4775807?
【发布时间】:2011-02-25 08:36:44
【问题描述】:

我正在查看 System.Web.Configuration.CompilationSection 的元数据,并注意到 TimeSpan BatchTimeout 属性上的以下属性:

[TimeSpanValidator(MinValueString = "00:00:00", 
 MaxValueString = "10675199.02:48:05.4775807")]

有人可以解释为什么这是允许的最大值吗? TimeSpan 本身是有上限的,那为什么还会有另一个值验证,为什么是这个数字呢?

【问题讨论】:

    标签: c# .net validation timespan


    【解决方案1】:

    我认为接受的答案并不能完全回答问题。它确实是相同的最大值。这不是巧合。但是为什么是定义:

    [TimeSpanValidator(MinValueString = "00:00:00", MaxValueString = "10675199.02:48:05.4775807")]
    

    而不是类似:

    [TimeSpanValidator(TimeSpan.Zero, TimeSpan.MaxValue)]
    

    ?

    简单地说,这是因为属性不允许第二种定义。它们只允许编译时常量,因为它们是编译到程序集中的元数据。

    【讨论】:

    • 为了对此进行扩展,以下是两者的定义方式:public static readonly TimeSpan Zero = new TimeSpan(0);public static readonly TimeSpan MaxValue = new TimeSpan(Int64.MaxValue);。它们是在编译时不可用的类型的实例。
    【解决方案2】:

    这正是TimeSpan 的最大值。引用MSDNTimeSpan.MaxValue

    这个字段的值是等价的 到 Int64.MaxValue 滴答声。这 这个值的字符串表示是 正 10675199.02:48:05.4775807.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-07
      • 1970-01-01
      • 1970-01-01
      • 2015-04-14
      • 1970-01-01
      • 2018-01-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多