c#面向对象基础5
字符串 string
(1)字符串的不可变性
当给字符串重新赋值时,老值没有被销毁,而是重新开辟了一块新的空间去储存新值《------------------堆中,在栈中地址发生变化重新指向新值所处空间的地址。
具体过程请看图解(相册中):字符串的不可变性
当程序结束后由GC(垃圾回收器)扫面整个内存,如发现有的空间没有被指向,则立即把他销毁。
注:当字符串的变量名不一样但是值一样时,它们共同指向同一内存空间。
(2)将字符串看做是char 类型的一个只读数组也就是sting类型看作char类型的一个只读数组。通过下标去访问字符串中某一元素(此时是只读)。
如果我们要去修改字符串中的元素(值),我们应该怎么做呢???????????
首先,将字符串转成char类型的数组,调用ToCharArray()方法,得到char类型的数组。
例如:string s="dsfdf;
char[] chs=s.ToCharArray();
char[0]=k;//赋值
(2)将字符数组转成字符串,通过 new string(char[] 字符数组)
例如:s=new string(chs);
额外补充:计时器
使用:Stopwatch sw=new Stopwatch ();
sw.Start();//开始计时
需要计算时间的代码过程
sw.Stop();//结束时间
sw.Elapsed();//得出总时间
StringBuilder与string
在进行有关字符的拼接。。操作时,string 会产生一个新的实例(开辟空间存数据)用StringBuilder来替代
使用:(1)创建StringBuilder对象
StringBuilder sb=new StringBuilder();
(2)sb.Append("zdfdsf");//添加一个字符串
(3)sb.ToString();//转化成字符串类型
最新文章
- ASP.NET Core 运行原理剖析2:Startup 和 Middleware(中间件)
- AC日记——统计单词数 openjudge 1.12 5
- 第一个Sprint冲刺第七天
- Java基础 —— CSS
- C# -abstract, override, virtual, new
- emacs window版环境配置(设置默认的.emacs文件,指向自定义.emacs达到自定义home的目的)
- 《JavaScript程序设计》第2课:JS类型系统
- SQL语言(二) java怎样连接操作数据库中的数据
- 转 Caffe学习系列(3):视觉层(Vision Layers)及参数
- [APIO/ctsc2007]
- n个并发进程共用一个公共变量Q,写出用信号灯实现n个进程互斥的程序描述,给出信号灯值得取值范围,并说明每个取值范围的物理意义。
- php 查询mysql数据批量转为PDF文件二(批量使用wkhtmltopdf html导出PDF)
- MySQL--BNL/ICP/MRR/BKA
- 最全的MonkeyRunner自动化测试从入门到精通(8)
- ubuntu编译安装php7遇到的问题及解决方案
- mysql大表更新sql的优化策略(转)
- kolla-ansible 一键安装openstack
- Html标签及各种属性(持续更新)
- Date对象的用法总结
- 捷报 FastAdmin 国内开源排名第 13 名