Reputation: 19651
What is difference between Command$ and Command in VB 6?
MsgBox Command$
MsgBox Command
Upvotes: 7
Views: 7470
Reputation: 13037
The VB6 IDE can tell you the return type information directly.
If you have Command$
in code, right click it and select Definition from the menu (or press Shift-F2). This takes you to the Object Browser window.
You should see the following display:
and
In the first case, the lower pane shows As String
for the return type of Command$
, whilst for Command
it shows no return type, which indicates Variant
.
Upvotes: 0
Reputation: 244823
Any time you see a $
after a function in VB 6, it means that the function is a String
version, meaning it returns a value of type String
. The version without the dollar sign is a Variant
function, which of course means it returns a value of type Variant
.
In general, you should always prefer the String
versions over the Variant
versions.
The dollar sign also means the same thing if it appears after a variable name in lieu of a specified type. Here, it's part of a larger family of shorthand "type declaration characters" that were necessary in earlier versions of BASIC, but firmly antiquated by the time even VB 6 arrived on the scene. For example:
Dim name$
indicates a variable named name
that is of type String
. The alternative (and preferred!) notation is:
Dim name As String
In case you're dealing with legacy code where these appear, here's the entire list for completeness:
& Long
% Integer
# Double
! Single
@ Decimal
$ String
Upvotes: 17
Reputation: 67231
They both return the same string but Command returns the string in a Variant.
There are actually quite a few VB functions that do this. The $ at the end indicates the function returns a string while the counterparts return variants.
Upvotes: 5