vb.net – 为什么Integer.TryParse在失败时将结果设置为零?
发布时间:2020-12-17 00:03:34 所属栏目:大数据 来源:网络整理
导读:我对Integer.TryParse()函数的理解是,它试图从传入的字符串中解析一个整数,如果解析失败,结果整数将保持原样. 我有一个默认值为-1的整数,我希望保持为-1.但是,无法解析的Integer.TryParse()函数将此默认值更改为零. Dim defaultValue As Integer = -1Dim par
我对Integer.TryParse()函数的理解是,它试图从传入的字符串中解析一个整数,如果解析失败,结果整数将保持原样.
我有一个默认值为-1的整数,我希望保持为-1.但是,无法解析的Integer.TryParse()函数将此默认值更改为零. Dim defaultValue As Integer = -1 Dim parseSuccess As Boolean = Integer.TryParse("",defaultValue) Debug.Print("defaultValue {0}",defaultValue) Debug.Print("parseSuccess {0}",parseSuccess) 我的期望是上面的代码片段应该输出: defaultValue -1 parseSuccess False 但是它输出: defaultValue 0 parseSuccess False 我的理解是否正确?
它是一个out参数,这意味着它必须由方法设置(除非它抛出异常) – 该方法无法看到原始值是什么.
另一种方法是将其设置为ref参数并仅将其设置为成功,但这意味着强制调用者首先初始化变量,即使他们不想要这种行为. 您可以编写自己的实用程序方法: public bool TryParseInt32(string text,ref int value) { int tmp; if (int.TryParse(text,out tmp)) { value = tmp; return true; } else { return false; // Leave "value" as it was } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |