Strings and their prefixes
A string in X# is delimited by the double quotation mark:
cString := "this is a string"
This is valid for the VO, Vulcan and Code dialects. In the VO dialect a string can also be delimited by the single quotation mark:
cString := 'this is a string'
This is to make X# compatible to VO code.
If you need to use special characters or double quotation mark in your string, the enhanced string does what you need:
cString := e"this is a \"string\"."
and of course you can also embed other control characters in your string:
cString := e"this is a multiline\nstring with another\nline"
But you can do even more with interpolated strings:
local cMyVar := "Hi" as string cString := i"{cMyVar} guys"
Of course you can use both at the same time:
cString := ei"this is a \"string\". that references {cVariableName}"
As variable, not only a string variable can be used, but every type of object, and under the houd the :ToString()
method is called:
local oPerson as Person cString := i"This is {oPerson}"
And if you wish, you can also use formatting expressions:
local nValue as decimal nValue := 123.45m cString := i"nValue: {nValue:######.0000}" // nValue: 123,4500 cString := i"nValue: {nValue:F6}" // nValue: 123,450000
In this case (as in the use with ToString()), if you need to embed the parentheses {
and }
in your string, they need to be doubled as in this sample:
cConnection := i"Driver={{Microsoft access Driver (*.mdb)}};Dbq={cDatabaseFile};Uid=Admin;Pwd=;"
And only in the VO dialect, you need to prefix a char with the c
prefix:
cChar := c'a'
Please note that there is a major difference between C# and X#: in C# all strings are enhanced, and to make them normal, you must prefix them with the @
character.
In X# all strings are normal, and to be enhanced, they need the e
prefix.