c#常用字符串方法&值类型与引用类型

1、命名空间
可以认为类是属于命名空间的。
如果在当前项目中没有这个类的命名空间,需要我们手动的导入这个类所在的
命名空间。
1)、用鼠标去点
2)、alt+shift+F10
3)、记住命名空间,手动的去引用

2、在一个项目中引用另一个项目的类
1)、添加引用
2)、引用命名空间

3、值类型和引用类型
区别:
1、值类型和引用类型在内存上存储的地方不一样。
2、在传递值类型和传递引用类型的时候,传递的方式不一样。
值类型我们称之为值传递,引用类型我们称之为引用传递。
我们学的值类型和引用类型:
值类型:int、double、bool、char、decimal、struct、enum
引用类型:string、自定义类、数组
存储:
值类型的值是存储在内存的栈当中。
引用类型的值是存储在内存的堆中。

3、字符串
1)、字符串的不可变性
当你给一个字符串重新赋值之后,老值并没有销毁,而是重新开辟一块空间存储新值。

当程序结束后,GC扫描整个内存,如果发现有的空间没有被指向,则立即把它销毁。
2)、我们可以讲字符串看做是char类型的一个只读数组。

4、字符串提供的各种方法
1)、Length:获得当前字符串中字符的个数
2)、ToUpper():将字符转换成大写形式
3)、ToLower():将字符串转换成小写形式
例:

4)、Equals(lessonTwo,StringComparison.OrdinalIgnoreCase):比较两个字符串,可以忽略大小写
例:

5)、Split():分割字符串,返回字符串类型的数组。(输出的时候用foreach遍历的方法输出)
例:        

例二:
要求输出2015年3月3日

7)、IndexOf():判断某个字符串在字符串中第一次出现的位置的索引,如果没有返回-1、值类型和引用类型在内存上存储的地方不一样。

8)、LastIndexOf():判断某个字符串在字符串中最后一次出现的位置索引,如果没有同样返回-1 返回int类型

9)、StartsWith():判断以….开始返回的是布尔类型
10)、EndsWith():判断以…结束返回的是布尔类型

11)、Replace():将字符串中某个字符串替换成一个新的字符串
12)、Contains():判断某个字符串是否包含指定的字符串

获取某个磁盘路径下面的文件:

13)、Trim():去掉字符串中前后的空格
14)、TrimEnd():去掉字符串中结尾的空格
15)、TrimStart():去掉字符串中前面的空格

16)、string.IsNullOrEmpty():判断一个字符串是否为空或者为null

17)、string.Join():将数组按照指定的字符串连接,返回一个字符串。

5、 StringBuilder 和 String 的区别?
答:String 在进行运算时(如赋值、拼接等)会产生一个新的实例,而 StringBuilder 则不会。所以在大量字符串拼接或频繁对某一字符串进行操作时最好使用 StringBuilder,不要使用 String
如果要操作一个不断增长的字符串,尽量不用String类,改用StringBuilder类。两个类的工作原理不同:String类是一种传统的修改字符串的方式,它确实可以完成把一个字符串添加到另一个字符串上的工作没错,但是在.NET框架下,这个操作实在是划不来。因为系统先是把两个字符串写入内存,接着删除原来的String对象,然后创建一个String对象,并读取内存中的数据赋给该对象。这一来二去的,耗了不少时间。而使用System.Text命名空间下面的StringBuilder类就不是这样了,它提供的Append方法,能够在已有对象的原地进行字符串的修改,简单而且直接。当然,一般情况下觉察不到这二者效率的差异,但如果你要对某个字符串进行大量的添加操作,那么StringBuilder类所耗费的时间和String类简直不是一个数量级的。

使用string做字符串的累加与substring比较&定时器的使用