c# 在转换之前检测字符串是否为长或 DateTime

标签 c# datetime type-conversion long-integer

我有代码:

if(DateTime.TryParse(objString, out DateTime result))
{
    // ...
}
else if (long.TryParse(objString, out long result))
{
    // ...
} 
else
{
    // ...
}

如果 objString = "782,4"DateTime TryParse 没问题,结果我有 "782-04-01 00:00:00"

我该如何解决这个问题?

最佳答案

最简单的解决方案是简单地更改检查字符串的顺序。

所以代替:

if(DateTime.TryParse(objString, out DateTime result))
{
    // ...
}
else if (long.TryParse(objString, out long result))
{
    // ...
} 
else
{
    // ...
}

简单地说,更改if 语句的顺序:

if (long.TryParse(objString, out long result))
{
    // ...
}
else if (DateTime.TryParse(objString, out DateTime result))
{
    // ...
} 
else
{
    // ...
}

正如我在评论中所说,如果你想计算 float ,你必须使用 double.TryParse

所以也许可以改用这个:

if (double.TryParse(objString, out double dblResult))
{
    // ...
}
else if (DateTime.TryParse(objString, out DateTime dateTimeResult))
{
    // ...
} 
else
{
    // ...
}

关于c# 在转换之前检测字符串是否为长或 DateTime,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52739816/

相关文章:

mysql - 奇怪的 MySQL CURDATE() 行为(可能受 CAST 影响?)

java - 在 List、Set、Queue、Deque 中转换数组 int、boolean、double、long 和 String

c# - Scrollview 和 Mozilla PDF.js 的滚动错误

C# - MEF - 从可移植类库导入

c# - 从 HttpResponseMessage.Content 读取流式内容

php日期转换函数的月份和日期值问题

c# - 你能从 SqlDataReader 中获取列名吗?

user-interface - BlackBerry - 创建自定义日期字段

java - 二进制算术运算

c++ - 我是否需要重载类的强制转换运算符?