The string type represents a string of Unicode characters. string is an alias for System.String in the NGWS Framework.
Although string is a reference type, the equality operators (== and !=) are defined to compare the values of string objects, not references (§ 7.9.7 in the language reference). This makes testing for string equality more intuitive.
string a = "hello"; string b = new string( "hello" ); Console.WriteLine( a == b ); // output: True -- same value Console.WriteLine( (object)a == b ); // False -- different objects
The + operator concatenates strings:
string a = "good " + "morning";
The [] operator accesses individual characters of a string:
char x = "test"[2]; // x = 's';
String literals are of type string and can be written in two forms, quoted and @-quoted. Quoted string literals are enclosed in double quotation marks ("):
"good morning" // a string literal
and can contain any character literal, including escape sequences:
string a = "\\\u0066\n"; // backslash, letter f, new line
@-quoted string literals start with @ and are enclosed in double quotation marks. For example:
@"good morning" // a string literal
The advantage of @-quoting is that escape sequences are not processed, which makes it easy to write, for example, a fully qualified file name:
@"c:\Docs\Source\a.txt" // rather than "c:\\Docs\\Source\\a.txt"
To include a double quotation mark in an @-quoted string, double it:
@"""Ahoy!" cried the captain." // "Ahoy!" cried the captain.
using System; class test { public static void Main( String[] args ) { string a = "\u0068owdy "; string b = "doody"; Console.WriteLine( a + b ); Console.WriteLine( a + b == "howdy doody" ); } }
howdy doody True