Basically, there is no difference between String and string in C#. The String is a class in the .NET framework in the System namespace and the string is an alias of System.String.
Both the String and string are compiled to System.String in IL (Intermediate Language), so there is no difference between them.
In the below example, you can see both String and string types return the full name type as System.String
.
class StringCompareSample
{
static void Main(string[] args)
{
String laptop1 = "Dell";
string laptop2 = "HP";
Console.WriteLine("Type:");
Console.WriteLine("-------------");
Console.WriteLine(laptop1.GetType().FullName);
Console.WriteLine(laptop2.GetType().FullName);
Console.ReadKey();
}
}
Output:
Type:
-------------
System.String
System.String
You can use anyone these types (System.String
or System.string
), the string is a keyword and most developers use System.string
to declare variables in C#. System.String
is a class and commonly used for accessing string static methods like String.IsNullOrEmpty(), String.Format(), String.Compare(), String.CompareTo()
etc.
In order to use String or string classes, you need to import System
namespace in your *.cs file. Ideally, when you add the *.cs file in your project in Visual Studio, the System
namespace will be added automatically, so you need to worry about this and don't need to add this again if already present. You can directly use the String or string class in your *.cs file.
In the below example, the string is used to declare a variable but the String is used to access the static method String,Concat()
to concat the two string values.
class StringCompareSample
{
static void Main(string[] args)
{
// decalare variables
string str1 = "My ";
string str2 = "Laptop";
// access static method
string concat = String.Concat(str1, str2);
Console.WriteLine(concat);
Console.ReadKey();
}
}
Output:
My Laptop
In the .Net framework, alias names are used for different types as shown below,
Alias Type | .NET Type |
---|---|
byte | System.Byte |
sbyte | System.SByte |
int | System.Int32 |
uint | System.UInt32 |
short | System.Int16 |
ushort | System.UInt16 |
long | System.Int64 |
ulong | System.UInt64 |
float | System.Single |
double | System.Double |
char | System.Char |
bool | System.Boolean |
object | System.Object |
string | System.String |
decimal | System.Decimal |
DateTime | System.DateTime |
Comments (0)