将值从索引器安全地转换为长

Convert value from indexer safely to long

我在从索引器安全地获取长值时遇到问题。在我想要的值为空之前,以下代码可以正常工作。然后索引器 returns 空字符串和我的代码抛出异常。

long TargetID = 0;
object _targetID = CurrentData[TargetIDKey];
if (_targetID !=null && (Convert.ToInt64(_targetID)) > 0)
    TargetID = Convert.ToInt64(_targetID);
else
    TargetID = -1;

我该如何解决这个问题,而不是异常我转到 else 子句?

您可以改用 long.TryParse

long targetID;
if(_targetID == null || !long.TryParse(_targetID.ToString(), out targetID))
    targetID = -1;