摘要:string是编程中使用最频繁的类型。一个string表示一个恒定不变的字符序列集合。string类型直接继承自object,故他是一个引用类型,也就是说线程的堆栈上不会有任何字符串(直接继承自object的类型一定是引用类型,因为所有的值类型都继承自System.ValueType。值得指出的是System.ValueType是引用类型)。
string是编程中使用最频繁的类型。一个string表示一个恒定不变的字符序列集合。string类型直接继承自object,故他是一个引用类型,也就是说线程的堆栈上不会有任何字符串(直接继承自object的类型一定是引用类型,因为所有的值类型都继承自System.ValueType。值得指出的是System.ValueType是引用类型)。
一、创建字符串
C#将string认为是基元类型,也就是说编译器也许在源代码中用文本常量来直接表达字符串。编译器会将这些文本常量字符串存放在托管模块的元数据中。在C#中创建string。
不能通过new操作符来创建string
class Program
{
static void Main( string [] args)
{
string hap = new string ( " heaiping " );
}
}
以上代码会出现编译错误。
相反,应该使用下面的简化语法
class Program
{
static void Main( string [] args)
{
string hap = " heaiping " ;
}
}
为什么呢,请看下面代码。
![](https://i-blog.csdnimg.cn/blog_migrate/cdec0645add3fc3c328197dda5c76203.gif)
namespace StringStudy
{
class Program
{
static void Main( string [] args)
{
string s = " heaiping " ;//不使用new
SomeClass sc = new SomeClass();//使用new
}
}
class SomeClass
{
}
}
编译以上代码查看ILDasm生成的IL代码如下。