gpt4 book ai didi

vb.net - 将对象转换为整数的最佳方法

转载 作者:行者123 更新时间:2023-12-01 10:53:47 25 4
gpt4 key购买 nike

我希望将一个对象从外部缓存安全地转换为整数类型。

我似乎能做到这一点的唯一方法是在一个 try catch block 中,如下所示:

Try
Return Convert.ToInt32(obj)
Catch
'do nothing
End Try

我讨厌写这样的 catch 语句。

有没有更好的办法?

我试过:

TryCast(Object, Int32)

不起作用(必须是引用类型)

Int32.TryParse(Object, result)

不行(必须是字符串类型)

更新

我喜欢 Jodrell 发表的评论 - 这将使我的代码看起来像这样:

Dim cacheObject As Object = GlobalCache.Item(key)
If Not IsNothing(cacheObject) Then

If TypeOf cacheObject Is Int32 Then
Return Convert.ToInt32(cacheObject)
End If

End If

'Otherwise get fresh data from DB:
Return GetDataFromDB

最佳答案

澄清:问题最初被标记为 ;以下内容仅适用于 C#(尽管可能会翻译成 VB.NET):


如果它是一个盒装的int,那么:

object o = 1, s = "not an int";
int? i = o as int?; // 1, as a Nullable<int>
int? j = s as int?; // null

如此概括:

object o = ...
int? i = o as int?;
if(i == null) {
// logic for not-an-int
} else {
// logic for is-an-int, via i.Value
}

关于vb.net - 将对象转换为整数的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16582146/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com