频道栏目
首页 > 程序开发 > 软件开发 > C# > 正文
c#字符串的特性
2014-12-04 08:41:57           
收藏   我要投稿
谈到字符串,大家自然觉得简单,但是总是有一些小的问题隐约出现,下面我就系统的说一下字符串的问题,有说不到日后再予补充。

 

1,首先String是一个类,string只是String类的一个别名,别名的意思:另一个代号,就是和String一样使用。

 

2,string str=“abc”,和char[] cha={'a','b','c'}的不同。大家不要简单认识一个字符串就是一个字符数组。要理解本质。

 

就是字符串的不变性,string只是可读,但不可写。但字符数组可读可写。

 

可读:字符串中的str[0]=a  str[1]=b  str[2]=c,字符中的str[0]=a  str[1]=b  str[2]=c,

 

可写:字符串里的元素是不可写的

 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

<span style="font-size: 12px; font-family: 宋体;">class Program

    {

        static void Main(string[] args)

        {

            char[] cha = { 'a', 'b', 'c' };

            Console.WriteLine(cha[0]);

            cha[0] = 'b';

            Console.WriteLine(cha);

 

            string str = "abc";

            Console.WriteLine(str[0]);

            // str[0] = 'd';

            Console.ReadKey();

        }

</span>

若str[0]='d';将会报“错误 1 无法对属性或索引器“string.this[int]”赋值 -- 它是只读的“字符数组可以。  

 

这里有人提出,str=“abc”;str+=“d”,Console.WriteLine(str);出现abcd;这不是表明字符传可以更改吗?可写吗?

 

下面咱们就针对这个问题自习分析一下。

 

 

 

看到这个图,相比大家大家明白了字符串的不变性。再来个图证明这个不变性。

 

 

 

3,这里又一次证明了字符串不可变性,另外提出一个问题,那就是字符串的“暂存池”的概念。

 

string str=“abc”;string str1=“abc”两者指的是同一个对象。

 

但是这仅仅是string str=“abc”;string str1=“abc,而不是char[] cha={'a','b','c'}; string str=new string(cha);

 

 

 

 

 

在调试的时候打开监视窗口,输入*变量,监视变量的地址,两者是同一地址,证明指向的同一变量。下图不同地址,自然不同变量。

 

 

 

 

 

总结,处理字符串 一定要有接受他的返回值,因为每处理一次,就会产生一个对象。

 

常常将字符串实例,ToCharArray();然后再调用string的(char[])构造函数。“修改”字符串中的元素。

 

 

 

问题:这里会让我们想到值传递和引用传递的用法。以后再予更新。

 

4,

 

string str=null;

 

str="";

 

string str1=string.Empty;

 

string str2="";

 

string str3=“ ”;//有个空格

点击复制链接 与好友分享!回本站首页
相关TAG标签 字符串 特性
上一篇:C#如何生成二维码详解(含解码)
下一篇:C# XML序列化操作菜单
相关文章
图文推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站