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

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

当前回答

在我所知道的范围内,字符串只是 System.String 的名称,类似的字符串存在于 Bool, Object, Int... 唯一微妙的区别是,你可以使用字符串,而没有“使用系统;” 指令,而 String 需要它(否则,你应该指定 System.String 完整)。

关于什么是最好的使用,我猜这是一个口味问题,我个人更喜欢链条,但我不是一个宗教问题。

其他回答

绳子指一个带物体,它具有各种功能来操纵所包含的绳子。

字符串指一个原始类型

在 C# 中,他们都编写到 String 但在其他语言中,他们不这样做,你应该使用 String 如果你想处理 String 对象和 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";
  }
}

正如上面提到的那样,它们是相同的,而丝线只是对丝线的标志。

对于什么是值得的,我使用链来宣布类型 - 变量,属性,回报值和参数. 这与其他系统类型的使用一致 - int, bool, var 等(尽管 Int32 和 Boolean 也是正确的)。

我使用 String 在 String 类上使用静态方法,如 String.Split() 或 String.IsNullOrEmpty()。我觉得这更有意义,因为方法属于一个类,并且与我使用其他静态方法一致。

System.String 是.NET 字符串类 - 在 C# 字符串中,它是 System.String 的标志 - 所以在使用中,它们是相同的。

至于指南,我不会过于沉默,只是使用你喜欢的东西 - 生活中有更多的重要事物,代码将是相同的,无论如何。

如果你找到自己的建造系统,需要指定你正在使用的整合器的尺寸,因此倾向于使用 Int16, Int32, UInt16, UInt32 等,那么它可能看起来更自然地使用 String - 并且在不同的.net 语言之间移动时,它可能会使事情更容易理解 - 否则我会使用 String 和 int。