这两者之间有什么区别,我应该使用哪一个?

string s = "Hello world!";
String s = "Hello world!";

当前回答

正如你所知道的,字符串只是 System.String 的名称,但我应该使用什么?它只是个人偏好。

在我的情况下,我喜欢使用字符串而不是使用 System.String 因为 String 需要使用 System 的名称空间;或者使用 System.String 的全名。

所以我相信 alias string 是为了简单而创建的,我喜欢它!

其他回答

虽然 String 是一个保留的 C# 关键词,总是有一个固定的含义, String 只是一个常见的识别器,可以提到任何东西. 根据当前类型的成员,当前的名称空间和应用的使用指令和他们的位置, String 可能是一个值或类型与全球::System.String 不同。

我将提供两个例子,其中使用指令不会有助于。


class MySequence<TElement>
{
  public IEnumerable<TElement> String { get; set; }

  void Example()
  {
    var test = String.Format("Hello {0}.", DateTime.Today.DayOfWeek);
  }
}

更糟糕的是: 說 String.Concat(someSequence) 將很可能(取決於使用) 去 Linq 擴展方法 Enumerable.Concat. 它不會去到静态方法 string.Concat。


其次,当 String 是另一种类型时,它在当前类型内定位:

class MyPiano
{
  protected class String
  {
  }

  void Example()
  {
    var test1 = String.Format("Hello {0}.", DateTime.Today.DayOfWeek);
    String test2 = "Goodbye";
  }
}

有一个区别 - 您不能使用 String 没有使用系统; 提前。

Jeffrey Richter 写道:

另一种方法是C#编译器自动假设您在所有源代码文件中使用下列指南:

using int = System.Int32;
using uint = System.UInt32;
using string = System.String;
...

我已经看到一些开发人员混淆了,不知道是否在他们的代码中使用线条或线条. 因为在C#线条(一个关键词)地图准确到System.String(一个FCL类型),没有区别,也可以使用。

字符串和字符串之间的微小差异在C#. 字符串只是系统的标志. 字符串. 两个字符串和字符串都是以相同的方式编写的. 答案是非常简单的. 字符串是关键词提供有限的功能,主要使用字符串创建变量如(字符串名称 = “Abrar”). 或者我们可以说这是一个数据类型我们使用特殊的字符串。

字符串和字符串在所有方面都是相同的(除上面的“S”外)。

在大多数项目中,由于合成突出性而偏好下滑线。