C# defines number of alias names for CLR (i.e. Common Language Runtime) types. Technically, there is no difference between string and String, as string is just the alias name for System.String or String. System.String is a static sealed class, whether you invoke it by string or String, it makes no difference. Same thing is for int and System.Int32. int is alias name for System.Int32.
Here is the list of aliases defined by C#