1

我知道整数是 32 位数据类型,长整数是 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()。这个对吗。

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

4

1 回答 1

0

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

于 2013-10-24T07:09:56.007 回答