C# 如何检查TimeSpan.ParseExact是否为真

C# 如何检查TimeSpan.ParseExact是否为真,c#,timespan,C#,Timespan,我想检查时间跨度字符串的正确格式 intervalString = "23:54:00"; format = "hh\\:mm\\:ss"; culture = CultureInfo.CurrentCulture; var reded= TimeSpan.ParseExact(intervalString, "hh\\:mm\\:ss", CultureInfo.InvariantCulture); 结果是23:54:00 如果我尝试intervalString=28:54:00;我有个例

我想检查时间跨度字符串的正确格式

intervalString = "23:54:00";
format = "hh\\:mm\\:ss";
culture = CultureInfo.CurrentCulture;

var reded= TimeSpan.ParseExact(intervalString, "hh\\:mm\\:ss", CultureInfo.InvariantCulture);
结果是23:54:00

如果我尝试intervalString=28:54:00;我有个例外。 我如何检查它是否失败并毫无例外地继续我的代码?

改用TimeSpan.TryParseExact。它将返回一个bool值,指示该值是否已成功解析

TimeSpan reded;

bool success = TimeSpan.TryParseExact(intervalString, "hh\\:mm\\:ss",
    CultureInfo.InvariantCulture, out reded);
仅使用专为这种特殊情况设计的:

var isParsed = TimeSpan.TryParseExact(
    intervalString, 
    "hh\\:mm\\:ss", 
    CultureInfo.InvariantCulture
    out TimeSpan reded      // it's your parsed value
);

// use reded if isParsed == true

使用TryParseExact-它正是为了这个目的而设计的。顺便说一下,不清楚为什么要用wpf标记它-它确实不是wpf特有的。