我对字符串和原始类型感到好奇。文章像这样说字符串是基本类型。但是,有关MSDN的第二篇文章并未将字符串列为原始类型。
但是,当我运行第二篇文章中提供的代码时,它显示 String不是Primitive type 。
有人可以指导我吗?
这两篇文章都说字符串 不是 原始类型。不是。
如果编译并运行第二篇文章中的示例代码,它将打印:
字符串不是原始类型。
我认为对此感到困惑的是,创建新字符串的语法类似于创建值类型。
在定义值类型时,所有这些都是相等的(无论如何在32位系统上)
System.Int32 a = new System.Int32(5); System.Int32 a = 5; int a = 5;
就像在创建引用类型字符串时一样:
System.String s = new System.String(new char[]{'h', 'e', 'l', 'l', 'o'}); System.String s = "hello"; string s = "hello";
此外,即使它们是引用类型,我们也可以按值比较字符串:
s == "hello";//true
这仍然不会使字符串成为原始类型。
该问题的公认答案应该为您提供详细信息。