C#中字符串和字符串有什么区别?

C#中字符串和字符串有什么区别?

示例(注意案例):

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

每种使用的准则是什么?有什么区别


撒科打诨
浏览 1189回答 4
4回答

达令说

String代表System.String它,它是.NET Framework类型。string是 C#语言中 的别名System.String。它们都编译成System.StringIL(中间语言),所以没有区别。选择你喜欢的并使用它。如果您使用C#编写代码,我更喜欢string它,因为它是C#类型的别名,并且是C#程序员所熟知的。我可以对(int,System.Int32)等说同样的话。

侃侃尔雅

我听说过在C#中使用提供的类型别名的最佳答案来自Jeffrey Richter在他的书“ CLR Via C#”中。以下是他的3个理由:我看到许多开发人员感到困惑,不知道是否在他们的代码中使用字符串或字符串。因为在C#中,字符串(关键字)完全映射到System.String(一种FCL类型),所以没有区别,任何一种都可以使用。在C#中,长映射到System.Int64,但是在不同的编程语言中,long可以映射到Int16或Int32。事实上,C ++ / CLI确实将long视为Int32。如果某人使用一种语言阅读源代码,如果他或她习惯于使用不同的编程语言进行编程,则很容易误解代码的意图。事实上,大多数语言甚至不会将long视为关键字,也不会编译使用它的代码。FCL有许多方法,它们将类型名称作为其方法名称的一部分。例如,BinaryReader类型提供诸如ReadBoolean,ReadInt32,ReadSingle等方法,而System.Convert类型提供诸如ToBoolean,ToInt32,ToSingle等方法。虽然编写下面的代码是合法的,但浮点线对我来说感觉非常不自然,并且线条不正确并不明显:BinaryReader br = new BinaryReader(...);float val  = br.ReadSingle(); // OK, but feels unnaturalSingle val = br.ReadSingle(); // OK and feels good所以你有它。我认为这些都是非常好的观点。但是,我发现自己在自己的代码中没有使用Jeffrey的建议。也许我太困在我的C#世界,但我最终试图使我的代码看起来像框架代码。
打开App,查看更多内容
随时随地看视频慕课网APP