This is done because then the types could be stored in the project and any .NET language could be used in the templates, where just the stored type of the field is emitted. C#'s int is a synonym for System.Int32, in the IL it is a normal System.Int32. Same for System.String and string, they're synonyms too. So there's nothing to change, they're already the same.