Newbie here, in C# what is the difference between the upper and lower case String/string?
-
There is another thread in SO about that: http://stackoverflow.com/questions/215255/string-vs-string-in-c – Roberto Barros Jan 13 '09 at 15:24
8 Answers
String uses a few more pixels than string. So, in a dark room, it will cast a bit more light, if your code is going to be read with light-on-dark fonts. Deciding on which to use can be tricky - it depends on the price of lighting pixels, and whether your readership wants to cast more light or less. But c# gives you the choice, which is why it is all-around the best language.

- 69,221
- 14
- 89
- 114
-
-
1I am a better programmer for knowing the "Correct" answer now. Thank you! :) – Russ Jan 13 '09 at 15:41
-
2In the good old times, most stuff was even completely case-insensitive. WRITING ALL IN UPPERCASE GAVE A LOT OF GREEN LIGHT ON A BLACK CRT-TUBE. But in these dark days, we write black on white and the situation has per(re)versed. LOL-good answer. – blabla999 Jan 13 '09 at 15:54
-
2
-
1
"String" is the underlying CLR data type (class) while "string" is the C# alias (keyword) for String. They are synonomous. Some people prefer using String when calling static methods like String.Format() rather than string.Format() but they are the same.

- 42,236
- 12
- 79
- 110
String is short version of System.String, the common type system (CTS) Type used by all .Net languages. string is the C# abbreviation for the same thing...
like
- System.Int32 and int
- System.Int16 and short,
etc.

- 143,358
- 22
- 150
- 216
An object of type "String" in C# is an object of type "System.String", and it's bound that way by the compiler if you use a "using System" directive, like so: using System; ... String s = "Hi"; Console.WriteLine(s); If you were to remove the "using System" statement, I'd have to write the code more explicitly, like so: System.String s = "Hi"; System.Console.WriteLine(s); On the other hand, if you use the "string" type in C#, you could skip the "using System" directive and the namespace prefix: string s = "Hi"; System.Console.WriteLine(s); The reason that this works and the reason that "object", "int", etc in C# all work is because they're language-specific aliases to underlying .NET Framework types. Most languages have their own aliases that serve as a short-cut and a bridge to the .NET types that existing programmers in those languages understand.

- 5,283
- 5
- 26
- 42
String is type coming from .NET core (CLR).
string is C# type, that is translated to String in compiled IL.
Language types are translated to CLR types.

- 445
- 3
- 8
- 22