C# 将索引器中的值安全地转换为长值

C# 将索引器中的值安全地转换为长值,c#,long-integer,C#,Long Integer,我无法从索引器安全地获取长值。以下代码正常工作,直到我想要的值为null。然后索引器返回空字符串,我的代码抛出异常 long TargetID = 0; object _targetID = CurrentData[TargetIDKey]; if (_targetID !=null && (Convert.ToInt64(_targetID)) > 0) TargetID = Convert.ToInt64(_targetID); else TargetI

我无法从索引器安全地获取长值。以下代码正常工作,直到我想要的值为null。然后索引器返回空字符串,我的代码抛出异常

long TargetID = 0;
object _targetID = CurrentData[TargetIDKey];
if (_targetID !=null && (Convert.ToInt64(_targetID)) > 0)
    TargetID = Convert.ToInt64(_targetID);
else
    TargetID = -1;
如何解决此问题,以使我转到else子句而不是exception?

您可以使用

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