首页 新闻 搜索 专区 学院

String和string定义一个变量的区别

0
[已解决问题] 解决于 2008-09-05 13:03

String和string都可以定义一个字符串变量,它们的本质区别在哪里?

 

stewen的主页 stewen | 初学一级 | 园豆:14
提问于:2008-09-02 15:53
< >
分享
最佳答案
0
有一点区别,你可以定义一个以String 命名的类,但不能定义一个string 命名的类。 class String { } String s = new String(); 这里s就不是 System.String 类型了,而是你自定义的类型了。所以编程规范里面往往要求使用 string 来声明字符串,不建议使用String,因为String 在理论上是可以改变的,除非你用System.String声明才比较安全。
eaglet | 专家六级 |园豆:17139 | 2008-09-03 08:07
其他回答(4)
0
没有区别,string只是String的一个别名而已,另外,string是关键字,而String不是关键字。本质上没有任何区别。 如下面的代码: static void Main(string[] args) { String s1 = "abc"; string s2 = "def"; } 再看它们的IL: .method private hidebysig static void Main(string[] args) cil managed { .entrypoint // Code size 14 (0xe) .maxstack 1 .locals init ([0] string s1, [1] string s2) IL_0000: nop IL_0001: ldstr "abc" IL_0006: stloc.0 IL_0007: ldstr "def" IL_000c: stloc.1 IL_000d: ret } Update: 看了楼下的回答,补充一下:其实还是同一个问题,不能用string创建一个类,那是因为string是一个关键字,而String不是关键字。 其实强烈建议不要用String创建类,就像用.NET Framework中其它类型名创建自己的类一样。
TerryLee | 园豆:3300 (老鸟四级) | 2008-09-02 15:53
0
没区别,犹如System.Int32和int TerryLee的IL代码很能说明问题
JimLiu | 园豆:300 (菜鸟二级) | 2008-09-02 16:28
0
TerryLee没有说那个 using string = System.String; 哈哈
丁学 | 园豆:18530 (专家六级) | 2008-09-02 16:31
0
MS楼上的好象更详细些
有所为,有所不为 | 园豆:1200 (小虾三级) | 2008-09-03 14:10
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册