470,624 Members | 2,235 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 470,624 developers. It's quick & easy.

difference between Convert.ToString(obj) and CType(obj, String)


Hi--

What is the difference between Convert.ToString(obj) and CType(obj,
String)?

(Assume obj is a variable of type Object.)

Please advise.

Thank you.

--Mark
Nov 19 '05 #1
3 21239
Mark,
If obj is type Object, why not just call obj.ToString()?

Convert.ToString is a framework function. Passing it an Object, causes it to
use the IConvertable interface that the object implements, String implements
this interface. I suspect it ultimately calls obj.ToString()

CType is a VB.NET keyword. It calls some internal VB.NET runtime functions.
I suspect it ultimately calls obj.ToString()

Don't forget there is also CStr, which is effectively shorthand for
CType(obj, String)

Also, for reference types (String is a reference type). if you know obj is a
String, DirectCast is better.

The following articles may help:

Visual Basic .NET Internals
http://msdn.microsoft.com/library/de...tinternals.asp

Performance Optimization in Visual Basic .NET
http://msdn.microsoft.com/library/de...tchPerfOpt.asp

The first article has a section titled: Conversion Functions, CType,
DirectCast, and System.Convert that should address your question.

Hope this helps
Jay
"Mark Kamoski" <mk******@yahoo.com> wrote in message
news:Op**************@TK2MSFTNGP10.phx.gbl...

Hi--

What is the difference between Convert.ToString(obj) and CType(obj,
String)?

(Assume obj is a variable of type Object.)

Please advise.

Thank you.

--Mark

Nov 19 '05 #2


Jay--

Which do YOU prefer?

Which do you recommend?

Please advise.

Thank you.

--Mark
"Jay B. Harlow [MVP - Outlook]" <Ja********@email.msn.com> wrote in message
news:u1**************@TK2MSFTNGP11.phx.gbl...
Mark,
If obj is type Object, why not just call obj.ToString()?

Convert.ToString is a framework function. Passing it an Object, causes it
to
use the IConvertable interface that the object implements, String
implements
this interface. I suspect it ultimately calls obj.ToString()

CType is a VB.NET keyword. It calls some internal VB.NET runtime functions.
I suspect it ultimately calls obj.ToString()

Don't forget there is also CStr, which is effectively shorthand for
CType(obj, String)

Also, for reference types (String is a reference type). if you know obj is
a
String, DirectCast is better.

The following articles may help:

Visual Basic .NET Internals
http://msdn.microsoft.com/library/de...tinternals.asp

Performance Optimization in Visual Basic .NET
http://msdn.microsoft.com/library/de...tchPerfOpt.asp

The first article has a section titled: Conversion Functions, CType,
DirectCast, and System.Convert that should address your question.

Hope this helps
Jay
"Mark Kamoski" <mk******@yahoo.com> wrote in message
news:Op**************@TK2MSFTNGP10.phx.gbl...

Hi--

What is the difference between Convert.ToString(obj) and CType(obj,
String)?

(Assume obj is a variable of type Object.)

Please advise.

Thank you.

--Mark


Nov 19 '05 #3
Mark,
I prefer to use the one that is appropriate at the time!

I recommend using the one that is appropriate at the time!

If I were a wood worker: When I needed a pocket knife, I would use a pocket
knife. When I needed a hatchet, I would use a hatchet. When I needed a chain
saw, I would use a chain saw.

In other words, there is no simple answer. There is no magic bullet. You
need to read the articles, learn, formulate ideas.

If you look at my code, when I have any variable and I need a string, I
normally use ToString (sometimes I use String.Format, sometimes other
functions). When I have an object, and I need a specific type, I use
DirectCast. When DirectCast is not appropriate I use CType (enums mostly).
However these are not hard and fast rules, these are applying what you learn
by reading the articles we gave you applying the knowledge contained within.

Hope this helps
Jay

"Mark Kamoski" <mk******@yahoo.com> wrote in message
news:u8**************@TK2MSFTNGP12.phx.gbl...


Jay--

Which do YOU prefer?

Which do you recommend?

Please advise.

Thank you.

--Mark
"Jay B. Harlow [MVP - Outlook]" <Ja********@email.msn.com> wrote in message news:u1**************@TK2MSFTNGP11.phx.gbl...
Mark,
If obj is type Object, why not just call obj.ToString()?

Convert.ToString is a framework function. Passing it an Object, causes it
to
use the IConvertable interface that the object implements, String
implements
this interface. I suspect it ultimately calls obj.ToString()

CType is a VB.NET keyword. It calls some internal VB.NET runtime functions. I suspect it ultimately calls obj.ToString()

Don't forget there is also CStr, which is effectively shorthand for
CType(obj, String)

Also, for reference types (String is a reference type). if you know obj is
a
String, DirectCast is better.

The following articles may help:

Visual Basic .NET Internals
http://msdn.microsoft.com/library/de...tinternals.asp
Performance Optimization in Visual Basic .NET
http://msdn.microsoft.com/library/de...tchPerfOpt.asp
The first article has a section titled: Conversion Functions, CType,
DirectCast, and System.Convert that should address your question.

Hope this helps
Jay
"Mark Kamoski" <mk******@yahoo.com> wrote in message
news:Op**************@TK2MSFTNGP10.phx.gbl...

Hi--

What is the difference between Convert.ToString(obj) and CType(obj,
String)?

(Assume obj is a variable of type Object.)

Please advise.

Thank you.

--Mark


Nov 19 '05 #4

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

6 posts views Thread by Mike Brown | last post: by
2 posts views Thread by Jarod_24 | last post: by
5 posts views Thread by XML newbie: Urgent pls help! | last post: by
7 posts views Thread by Ray Proffitt | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.