User Tools

Site Tools


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.

strings.txt · Last modified: 2018/10/06 05:09 by wolfgangriedmann