C#文本处理(String)

本文详细介绍了C#中字符串(string)的使用,包括创建、恒定性、比较和驻留机制。强调了string的不可变性,推荐使用StringBuilder进行字符串连接,并解释了string的特殊构造方式,以及如何通过Intern和IsInterned方法实现字符串驻留以优化性能。
摘要由CSDN通过智能技术生成

 

摘要: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 " ;
}
}

 

为什么呢,请看下面代码。

代码
   
   
   
namespace StringStudy
{
class Program
{
static void Main( string [] args)
{
string s = " heaiping " ;//不使用new
SomeClass sc
= new SomeClass();//使用new
}
}

class SomeClass
{
}
}

编译以上代码查看ILDasm生成的IL代码如下。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值