加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

vb.net – VB CStr,CDate,CBool??等与DirectCast相比,无需转换即

发布时间:2020-12-17 07:25:07 所属栏目:百科 来源:网络整理
导读:除非我需要进行实际转换,否则我通常会避免使用VB的内置转换函数(CStr,CDate,CBool??,CInt等).如果我只是在演员,从一个对象说到一个字符串,我通常使用DirectCast或TryCast,假设CStr等正在做一些我不需要的额外的东西.但有时DirectCast语法有点麻烦,如下例所示
除非我需要进行实际转换,否则我通常会避免使用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返回一个Object,需要将其强制转换为String. 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博客上的帖子)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读