String 和 string 在 C# 中有什么区别?它们是不同的类型吗?
大家好!我最近开始学习 C#,有一个地方让我困惑。在不同的代码示例中,我看到字符串的声明方式不同:有人写 `string name = "John";`,有人写 `String name = "John";`。两者都能工作,IntelliSense 也不会报错。但这是不同的名称吗?也许 `String` 是 .NET 中的类,而 `string` 是某种原始类型?还是说它们是同一个东西?\n\n我尝试写了这样的代码:\n\n```csharp\nstring a = "Hello";\nString b = "World";\nConsole.WriteLine(a.GetType()); // System.String\nConsole.WriteLine(b.GetType()); // System.String\nConsole.WriteLine(a == b); // True\n```\n\n两次都输出 `System.String`,比较也能工作。但如果它们是同一个东西,为什么要有两个名称?也许在性能或内存处理方式上有区别?或者这只是风格问题?希望能得到详细解释,因为我担心在实际项目中写错。