string and System.String

In C#, string and String both represent the same data type, which is used to store a sequence of characters. The main difference between them lies in their declaration and usage.

string (with a lowercase 's')

  1. string is an alias for the .NET framework's System.String data type.
  2. It is a reference type, meaning it is stored on the managed heap, and its variable holds a reference to the actual memory location where the string data resides.
  3. In C#, it is conventionally recommended to use string (lowercase) instead of String (uppercase).
string firstName = "Smith"; string lastName = "Warrier";

String (with an uppercase 'S')

c# String object
  1. String is the fully qualified name of the .NET framework's System.String data type.
  2. It is also a reference type and used to represent a sequence of characters in the same way as string.
String message = "Hello, World!";
As you can see, there is no practical difference between using string and String in C#. Both are interchangeable, and developers typically prefer using string due to its lowercase convention, which aligns with the general naming guidelines in C#. Here's a more comprehensive example illustrating the interchangeable usage of string and String:
using System; class Program { static void Main() { // Using 'string' (lowercase) to declare variables string name1 = "Alice"; string name2 = "Bob"; // Using 'String' (uppercase) to declare variables String greeting1 = "Hello, " + name1; String greeting2 = "Hello, " + name2; // Using 'string' in method parameters and return type string fullName = ConcatenateNames(name1, name2); Console.WriteLine(fullName); // Output: AliceBob // Using 'String' in method parameters and return type String fullGreeting = GenerateGreeting(greeting1, greeting2); Console.WriteLine(fullGreeting); // Output: Hello, AliceHello, Bob } static string ConcatenateNames(string firstName, string lastName) { return firstName + lastName; } static String GenerateGreeting(String greeting1, String greeting2) { return greeting1 + greeting2; } }
c# String


It's important to emphasize that both string and String are interchangeable, and developers generally use string due to the standard naming conventions in C#.