String: A String object is called immutable (read-only) because its value cannot be modified once it has been created. Methods that appear to modify a String object actually return a new String object that contains the modification. If it is necessary to modify the actual contents of a string-like object
string: The string type represents a sequence of zero or more Unicode characters. string is an alias for String in the .NET Framework. string
is the intrinsic C# datatype, and is an alias for the system provided type "System.String". The C# specification states that as a matter of style the keyword (string) is preferred over the full system type name (System.String, or String).Although string is a reference type, the equality operators (== and !=) are defined to compare the values of string objects, not references. This makes testing for string equality more intuitive. For example:
Difference between string & String:
- The
string
is usually used for declaration whileString
is used for accessing static string methods - You can use
'string'
do declare fields, properties etc that use the predefined type'string'
, since the C# specification tells me this is good style. - You can use
'String'
to use system-defined methods, such as String.Compare etc. They are originally defined on 'System.String', not 'string'.'string'
is just an alias in this case. - You can also use
'String'
or 'System.Int32' when communicating with other system, especially if they are CLR-compliant. i.e. - if I get data from elsewhere, I'd de-serialize it into a System.Int32 rather than an 'int', if the origin by definition was something else than a C# system.