【问题标题】:Why does .NET differentiate String from Character?为什么 .NET 将字符串与字符区分开来?
【发布时间】:2012-06-25 21:22:11
【问题描述】:

字符串还不够吗?

就像一个的例子,
为什么 String 类可以让您将 char 数组或字符串数​​组传递给它的 Split 方法?
虽然只使用字符串版本是完全有效的?

  1. String.Split Method (Char[], StringSplitOptions)
  2. String.Split Method (String[], StringSplitOptions)

【问题讨论】:

  • 因为有时一个字符是比长度为 1 的字符串更准确的抽象。

标签: .net string character base-class-library


【解决方案1】:

字符串是字符数组的抽象。因此,即使对于单字符字符串,它们在技术上也是引用类型(尽管与大多数引用类型不同,它们是不可变的)。另一方面,字符实际上是值类型本身。 (MSDN 1, MSDN 2)

C# Replace Performance 显示了这一点的性能影响,其中使用字符数组比使用字符串数组快 4 倍。

【讨论】:

  • 框架根本不将字符串视为值类型。仅仅因为它们是不可变的,并不能阻止它们一直被用作引用类型。
  • 在调用StringBuilder.Append() 时使用字符也有一点性能优势。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-05
  • 2011-06-21
  • 1970-01-01
  • 2017-04-26
  • 2018-08-24
  • 2013-06-29
相关资源
最近更新 更多