Introduction
In this post I would like to discuss about String Vs string in c#.It is a common interview question for c# beginners.
String vs string
String is a class in .Net library while string is a c# alias or keyword for String class.
String is a .Net Framework date type.Both String and string refers to the same class String in .Net Library. In a c# program you can use both String and string interchangeably. After compilation, both of them will be converted into System.String in IL(Intermediate Language).
string = System.String Class
String is a class in System namespace. so string is equivalent to System.String.
Consider the following code snippet
1 2 3 4 5 6 7 8 9 10 |
using System; class Program { static void Main(string[] args) { String str1 = "Hello World"; string str2 = "Hello World"; } } |
Above program will run without any problem. But if we remove the line for importing System namespace, declaration of str1 will create some problem like
That means we can’t use String Class in c# programs without importing System namespace but for string keyword we don’t need System namespace.
Best Practice
Actually both string and String refers same class in .Net Library, Even though, there are some recommended practice to use in c#programs .
- use string keyword when declaring string variables.
1 |
string name = "Sam" |
- use String if you need to refer specially to the class
1 |
bool isValid = String.Equals("A", "AB"); |
Similar Aliases
C# alias for CLR datat types
object | System.Object |
string | System.String |
bool | System.Boolean |
byte | System.Byte |
sbyte | System.SByte |
short | System.Int16 |
ushort | System.UInt16 |
int | System.Int32 |
uint | System.UInt32 |
long | System.Int64 |
ulong | System.UInt64 |
float | System.Single |
double | System.Double |
decimal | System.Decimal |
char | System.Char |
Post A Reply