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

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

当前回答

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

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

其他回答

这个YouTube视频实际上展示了它们的差异。

当我们谈论.NET 时,有两个不同的东西,一个是.NET 框架,另一个是使用该框架的语言(C#,VB.NET 等)。

此分類上一篇

String s = "I am String";

string s = "I am String";

同样,还有其他 C# 数据类型的联盟,如下所示:

现在,从程序员的观点来看,百万美元的问题:那么什么时候使用“String”和“String”?

在下面的代码中,左侧是变量声明,它被声明使用“丝带”。在右侧,我们称一种方法,所以“丝带”更敏感。

string s = String.ToUpper() ;

有一个实用的区别在线和线之间。

nameof(String); // compiles
nameof(string); // doesn't compile

這是因為字符串是一個關鍵字(在這種情況下,一個名稱),而字符串是一個類型。

同样的情况也适用于其他联盟。

| Alias     | Type             |
|-----------|------------------|
|  bool     |  System.Boolean  |
|  byte     |  System.Byte     |
|  sbyte    |  System.SByte    |
|  char     |  System.Char     |
|  decimal  |  System.Decimal  |
|  double   |  System.Double   |
|  float    |  System.Single   |
|  int      |  System.Int32    |
|  uint     |  System.UInt32   |
|  long     |  System.Int64    |
|  ulong    |  System.UInt64   |
|  object   |  System.Object   |
|  short    |  System.Int16    |
|  ushort   |  System.UInt16   |
|  string   |  System.String   |

与其他程序员中似乎是常见的做法相反,我更喜欢线条超越线条,只是为了强调线条是一种参考类型,正如Jon Skeet提到的那样。

它已被覆盖; 但是,你不能在反射中使用线条; 你必须使用线条。

两者都是相同的,区别在于你如何使用它。

字符串为变量

String 是为了召唤其他 String 类方法

如:

string fName = "John";
string lName = "Smith";

string fullName = String.Concat(fName,lName);

if (String.IsNullOrEmpty(fName))
{
  Console.WriteLine("Enter first name");
}