.NET Discovery 系列之一--string从入门到精通(上)

系列文章导航:

.NET Discovery 系列之一--string从入门到精通(上)

.NET Discovery 系列之二--string从入门到精通(勘误版下)

.NET Discovery 系列之三--深入理解.NET垃圾收集机制(上)

.NET Discovery 系列之四--深入理解.NET垃圾收集机制(下)

.NET Discovery 系列之五--Me JIT(上)

.NET Discovery 系列之六--Me JIT(下)

.NET Discovery 系列之七--深入理解.NET垃圾收集机制(拾贝篇)


  string是一种很特殊的数据类型,它既是基元类型又是引用类型,在编译以及运行时,.NET都对它做了一些优化工作,正式这些优化工作有时会迷惑编程人员,使string看起来难以琢磨,这篇文章分上下两章,共四节,来讲讲关于string的陌生一面。

  一.恒定的字符串

  要想比较全面的了解stirng类型,首先要清楚.NET中的值类型与引用类型。在C#中,以下数据类型为值类型:

  bool、byte、char、enum、sbyte以及数字类型(包括可空类型)

  以下数据类型为引用类型:

  class、interface、delegate、object、stirng

  看到了吗,我们要讨论的stirng赫然其中。被声明为string型变量存放于堆中,是一个彻头彻尾的引用类型。

  那么许多同学就会对如下代码产生有疑问了,难道string类型也会“牵一发而动全身”吗?让我们先来看看以下三行代码有何玄机:

string a = "str_1";
string b = a;
a
= "str_2";

NET技术.NET Discovery 系列之一--string从入门到精通(上),转载需保留来源!

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。