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();//转化成字符串类型
c#面向对象基础5的更多相关文章
- 了解JavaScript 面向对象基础 & 原型与对象
面向对象语言中的对象 老是能听到什么基于对象, 面向对象. 什么是对象, 如果有面向对象基础的人可以无视了, 下面举个简单的例子给大家讲讲面向对象中, 对象的定义, 这个是比较通用的, 不过对于JS来 ...
- MYSQL、PHP基础、面向对象基础简单复习总结
一.MYSQL 1.配置MySql 第一步安装服务器(apache). 第二部安装MySql界面程序 2 ...
- 从零开始学Python第六周:面向对象基础(需修改)
标签(空格分隔): 面向对象 一,面向对象基础 (1)面向对象概述 面向过程:根据业务逻辑从上到下写代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类 ...
- python面向对象基础
面向对象基础 1. 简述 编程方式: 面向过程: 根据代码在脚本的堆叠顺序,从上到下依次执行 函数式编程:将相同功能的代码封装到函数中,直接调用即可,减少代码重复性 面向对象:对函数进行分类和封装,将 ...
- java基础学习05(面向对象基础02)
面向对象基础02 实现的目标 1.String类的使用2.掌握this关键字的使用3.掌握static关键字的使用4.了解内部类 String类 实例化String对象一个字符串就是一个String类 ...
- java基础学习05(面向对象基础01--类实例分析)
面向对象基础01(类实例分析) 实现的目标 1.如何分析一个类(类的基本分析思路) 分析的思路 1.根据要求写出类所包含的属性2.所有的属性都必须进行封装(private)3.封装之后的属性通过set ...
- java基础学习05(面向对象基础01)
面向对象基础01 1.理解面向对象的概念 2.掌握类与对象的概念3.掌握类的封装性4.掌握类构造方法的使用 实现的目标 1.类与对象的关系.定义.使用 2.对象的创建格式,可以创建多个对象3.对象的内 ...
- 8.python笔记之面向对象基础
title: 8.Python笔记之面向对象基础 date: 2016-02-21 15:10:35 tags: Python categories: Python --- 面向对象思维导图 (来自1 ...
- 【重走Android之路】【Java面向对象基础(三)】面向对象思想
[重走Android之路][基础篇(三)][Java面向对象基础]面向对象思想 1 面向对象的WWH 1.1 What--什么是面向对象 首先,要理解“对象”.在Thinkin ...
- 【重走Android之路】【Java面向对象基础(二)】细说String、StringBuffer和StringBuilder
[重走Android之路][基础篇(二)][Java面向对象基础]细说String.StringBuffer和StringBuilder 1.String String是Java中的一个final ...
随机推荐
- BZOJ4475: [Jsoi2015]子集选取【找规律】【数学】
Description Input 输入包含一行两个整数N和K,1<=N,K<=10^9 Output 一行一个整数,表示不同方案数目模1,000,000,007的值. Sample In ...
- CTF之MD5
MD5是一种常见的加密方式,但准确来说,它只是一种编码方式,它将任意有限长度的字符串通过哈希函数转换为特定长度的字符串. MD5编码具有单向性,即由明文变密文简单,由密文变明文困难. 破解时只能通过暴 ...
- frameset的用法
碰到一个frameset的问题,因为我比较懒,就先从网上拿来一篇基础知识,呵呵,好记性不如烂笔头啊 所谓框架便是网页画面分成几个框窗,同时取得多个 URL.只需要 <FRAMESE ...
- test20181004 排列
题意 分析 容斥公式的意义 选了原图中\(x(x \geq i)\)条边的方案,重复了\(\binom{x}{i}\)次. 有多加多减,所以就是那个式子. 具体而言,对选了x条原图中的边的方案,总共加 ...
- 遍历json 对象的属性并且动态添加属性
昨天因为公司的一个需求,所以就研究了一下json对象的属性的遍历和动态修改: var person= { name: 'zhangsan', pass: '123' , 'sni.ni' : 'sss ...
- Java中 @Override 的作用
@Override是伪代码,表示重写(当然不写也可以),不过写上有如下好处: 可以当注释用,方便阅读: 编译器可以给你验证@Override下面的方法名是否是你父类中所有的,如果没有则报错.例如,你如 ...
- numpy之meshgrid和where
meshgrid np.meshgrid() np.meshgrid从坐标向量返回坐标矩阵. 这样说可能很抽象.举个例子. x = np.arange(-2,2) y = np.arange(0,3) ...
- SpringCloud初体验:六、利用 Sleuth 和 Zipkin 给微服务加上链路监控追踪查看功能
首先:装上 Zipkin 服务,收集调用链跟踪数据,体验时装在了本机docker上, 方便快捷 docker run -d -p : openzipkin/zipkin 安装后访问地址也是 9411端 ...
- msp430学习笔记-时钟及延时函数
引用:http://blog.chinaunix.net/uid-24343357-id-3271380.html MCLK默认时钟源是DCOCLK,SMCLK默认时钟源也是DCOCLK,DCOCLK ...
- php 目录操作
1.打开文件: opendir("文件名称"); 2.读取文件:readdir("文件名称"); <?php $dirname="phpMyAd ...