面向对象:
1.命名空间:
可以认为类是属于命名空间的
如果当前项目中没有这个类的命名空间,需要我们手动导入这个类所在的命名空间
导入方法:
1)用鼠标点;2)alt+shift+F10 ; 3)记住命名空间,手动去引用:using+命名空间
在一个项目中引用另一个项目的类:
1)添加引用; ---> 引用右键--->添加引用--->选中要引用的项目,确定
2)引用命名空间; 在当前项目中添加using+类的命名空间
2.值类型和引用类型
区别:
1)值类型和引用类型在内存存储的地方不一样
2)在传递值类型和引用类型的时候,传递的方式不一样:值类型我们称之为值传递,引用类型称之为引用传递
我们之前学的类型值类型和引用类型:
值类型:int、double、bool、char、decimal、struct、enum
引用类型:string、自定义类、数组
内存分为5大块,我们能用有三大块: 堆、栈、静态内存区域
值类型储存在“栈”当中,引用类型储存在“堆”中
3. 字符串:string
1)字符串的不可变性
当你给字符串赋值之后,老值并没有销毁,而是重新开辟一段空间存储新值.
当程序结束后,GC扫描整个内存,如果发现有的空间没有被指向,则立即把它销毁
所以在多次重新赋值时,在大量耗费内存的情况下改使用StringBuilder,赋值完成后将结果用ToString()转换成字符串
2)我们可以将字符串看做是char类型的只读数组
char[] chs = s.ToCharArray(); --->将字符串转换为字符数组
s = new String(chs); ---->将字符数组转换为字符串
3.)字符串的各种方法:string str
str.Length() ---->获取字符串str中的字符个数
str.ToUpper() / str.ToLower() --->将字符串转成大写/小写形式
lessonOne.Equals(lessonTwo,StringComparison.OrdinalIgnoreCase) --->忽略大小写比较两个字符串
string[] str = s.Split(chs,StringSplitOptions.RemoveEmptyEntries) --->分割字符串,返回字符串数组,chs为要删除的字符数组
替换关键字:(Contains、Replace方法)
string str = "大人物老赵";
if(str.Contains("老赵"))
{
str = str.Replace("老赵","**");
}
Console.WriteLine(str);
Substring 截取字符串Indexof 搜索字符串,返回第一次出现的索引。对应lastindexof,搜索字符串,返回最后一次出现的索引,经常与截取字符串配合使用
Trim() 移除所有的空字符,返回string 。TrimStart()/TrimEnd()去掉前面/后面的空字符
IsNullOrEmpty 判断字符串是否为空或空,返回bool
Join()在字符串数组的中间 插入字符字符或字符串
StartsWith() 判断以...开始 EndsWith 结束