4 回答
TA贡献1821条经验 获得超6个赞
String
代表System.String
它,它是.NET Framework类型。string
是 C#语言中 的别名System.String
。它们都编译成System.String
IL(中间语言),所以没有区别。选择你喜欢的并使用它。如果您使用C#编写代码,我更喜欢string
它,因为它是C#类型的别名,并且是C#程序员所熟知的。
我可以对(int
,System.Int32
)等说同样的话。
TA贡献1801条经验 获得超16个赞
我听说过在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#世界,但我最终试图使我的代码看起来像框架代码。
- 4 回答
- 0 关注
- 1188 浏览
添加回答
举报