This is because C# defines aliases to keep the original C flavor.
The .NET Framework uses specific naming conventions: for instance it states that a class name should start with a Capital. Therefore, String
-- which is not a C# native type but a .NET class defined in the System
namespace -- is actually called System.String
, or String
for short if you have a using System;
in your file.
C# defines string
as an alias of System.String
so that code can look like it does in C and other C-based languages (C++, Java, ...). I think it's more readable. In the same fashion, int
is the same as System.Int32
.