string是c#中的类,String是.net Framework的类(在C# IDE中不会显示蓝色) C# string映射为.net Framework的String 如果用string,编译器会把它编译成String,所以如果直接用String就可以让编译器少做一点点工作。
如果使用C#,建议使用string,比较符合规范 string始终代表 System.String(1.x) 或 ::System.String(2.0) ,String只有在前面有using System;的时候并且当前命名空间中没有名为String的类型(class、struct、delegate、enum)的时候才代表System.String string是关键字,String不是,也就是说string不能作为类、结构、枚举、字段、变量、方法、属性的名称,而String可以。
String是CLR的类型名称(也算是关键字),而string是C#中的关键字。string在编译时候C#编译器会默认将其转换为String,在这里会多增加几行转换的代码。很多时候都是建议使用CLR的类型而不要使用C#的类型(这是专家的建议)。比如说还有:使用int的时候最好使用Int32等。很多时候都是一个习惯问题,规范问题。还有一个不同就是在VS中表现的颜色不一样:String是绿色,string是蓝色。
转自:C#中String跟string的“区别” - 沙耶 - 博客园
https://www.cnblogs.com/ShaYeBlog/p/3210355.html