gpt4 book ai didi

vb.net - VB CStr、CDate、CBool​​ 等与 DirectCast 相比,无需转换即可进行转换

转载 作者:行者123 更新时间:2023-12-04 22:38:18 25 4
gpt4 key购买 nike

我通常避免使用 VB 的内置转换函数(CStr、CDate、CBool​​、CInt 等),除非我需要进行实际转换。如果我只是将对象转换为字符串,那么我通常使用 DirectCast 或 TryCast,假设 CStr 等正在做一些我不需要的额外工作。但有时 DirectCast 语法有点麻烦,如下例所示。

Dim value1 As String
Dim value2 As String
Using cn As New SqlConnection(cnStr)
Using cmd as New SqlCommmand(sqlStr, cn)
Using reader = cmd.ExecuteReader()
While reader.Read()
value1 = DirectCast(reader("COLUMN1"), String)
value2 = CStr(reader("COLUMN1"))
End While
End Using
End Using
End Using

SqlDataReader.Item 返回一个对象,需要将其转换为字符串。 CStr 更易于阅读、输入和解释 (IMO)。

我的问题是,我使用哪一个重要吗?我是否应该只使用 CStr(以及 CDate 和 CBool​​ 等)而不用担心我假设这些函数正在做的额外工作?

使用这些功能还有其他缺点吗?

最佳答案

This is a good post 在关于 DirectCast 与 CType 类型转换和变体的评论中进行了讨论。

简而言之,如果您想明确说明它并知道会发生什么,建议使用 DirectCast。另一方面,Paul Vick(VB 技术负责人)的评论说这并不重要,只使用 CType 变体。

从该帖子中收集了一些有用的链接:

  • How should I cast in VB.NET?
  • DirectCast Revealed(发表在 Paul Vick 的博客上)
  • 关于vb.net - VB CStr、CDate、CBool​​ 等与 DirectCast 相比,无需转换即可进行转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1379537/

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