原始类型是否为扩展转换字符串?

时间:2013-10-24 06:59:22

标签: vb.net

据我所知,整数是32位数据类型,long是64位数据类型等。字符串有多少位?

从基本类型到字符串的隐式转换是否总是扩展转换? 例如,请参阅以下代码:

Public sub routine1(byval strParam as string)

End sub

Public sub routine2()

    Dim intTest As Integer
    intTest = 1
    routine1(intTest)

End sub

无论intTest是否为:boolean,int,long,decimal等(所有基本类型),这总是安全的。

在另一个问题中,一位回答者说:“并非所有东西都必须具有完全准确的字符串表示,也是您想要使用的字符串表示”。当他们说“不是一切”时,我相信他们指的是自定义类型,例如Foo,你必须覆盖.ToString()。这是对的。

问题是:从原始类型到字符串的隐含转换总是安全的吗?

1 个答案:

答案 0 :(得分:0)

名为 routine1 的方法/子接受字符串参数。尝试传递任何其他对象将调用该对象的ToString方法。 由于 Object 类本身具有ToString方法的默认实现,因此您在传递任何类型的对象(包括基元)时都不会遇到问题,但如果不覆盖ToString方法以提供ToString方法,则可能会出现无意义的表示对象的有意义的表示。

相关问题