1、命名空间
- 可以认为类是属于命名空间的,命名空间可以理解为是类的文件夹
- 如果在当前项目中没有这个类的命名空间,需要我们手动导入:
1)用鼠标点左下角的方块
2)alt+shift+F10
3)背住几个常用的命名空间
2、同一解决方案内,引用其他项目的类
- 添加引用:
右击“引用” - 引用命名空间
在命名空间中写using 项目名
3、值类型和引用类型
- 区别:
1)值类型和引用类型在内存上存储的地方不一样
2)在传递值类型和传递引用类型的时候,传递的方式不一样。值类型我们称之为值传递,引用类型我们称之为引用传递。 - 我们学过的值类型和引用类型:
值类型:int、double、bool、char、decimal、struct、enum
引用类型:string、自定义类 - 储存:
值类型的值储存在栈当中
引用类型的值储存在堆中。但是也在栈里面开空间,对应的储存堆的地址。
4、字符串
1. 字符串的不可变性
当你给一个字符串重新赋值的时候,老值并没有销毁,而是重新开辟一块空间储存新值。
2. 字符串在堆中的清理
当程序结束后,GC扫描整个内存,如果发现有的空间没有被指向,则立即把他销毁
3. 字符串的重新赋值
当给两个字符串变量赋同一个值,此时栈中开辟两个空间,但是堆中只开辟一个空间,两个栈都指向这个堆
4. 可以把字符串看作一个char类型的一个只读数组
- 使用例:
string s = "abcdefg";
Console.WriteLine(s[0]);- 如果非要把一个字符串中的某一个字母替换,则需要先将其转换成真正的char数组
char[] chs = s.ToCharArray();//将字符串转换为char数组
chs[0] = 'b';
s = new string(chs);//将char数组转换为字符串5. StringBuilder
- 作用:为了解决string每次重新赋值都要开空间导致的程序缓慢
- 使用例:
StringBuilder sb = new StringBuilder();
for (int i = 0; i < 100000; i++)
{
sb.Append(i);
}
Console.WriteLine(sb.ToString());- 一般来说,使用StringBuilder创建的字符串仍转换成string类型使用
6.字符串提供的各种方法
- Length:获得当前字符串中字符的个数
变量.Length - ToUpper():将字符转换成大写形式
变量.ToUpper() - ToLower():将字符转换成小写形式
变量.ToLower() - Equals():比较两个字符串的方法,举例(忽略大小写):
class1.Equals(class2, StringComparison.OrdinalIgnoreCase)- Split():将字符串分割,举例(去除其他符号,且不保留空字符):
string s = "a b dfd _ + = ,,, fdf ";
char[] chs = { ' ', '_', '+', '=', ',' };
string[] str = s.Split(chs,StringSplitOptions.RemoveEmptyEntries);6.Contains():判断字符串是否包含某些字符,返回bool类型
Replace():将字符串中特定文本替换
举例:
string str = "国家关键人物老赵";
if (str.Contains("老赵"))
{
str = str.Replace("老赵", "**");
}- Substring():截取字符串,括号里是
开始截取的位置,截取的长度,举例:
string str = "今天天气好晴朗,处处好风光";
str = str.Substring(1, 2);- bool StartsWith(string value):判断字符串中是否以字串value开始
- bool EndsWith(string value):判断字符串中是否以字串value结束
- int IndexOf(string value):取字串value第一次出现的位置,逗号后面可以设置从字符串的哪一个位置开始查找。如果整个字符串没有value,则返回-1
- int LastIndexOf(string value):取字串value最后一次出现的位置。可以和Substring联合使用,在文件路径字符串中取文件名
- Trim():去掉字符串前后的空格
TrimEnd():去掉字符串后面的空格
TrinStart():去掉字符串前面的空格 - IsNullOrEmpty():判断字符串里面是不是空的或者无内容
- Join():可以把指定内容加在字符串数组每两个之间,输出一整个字符串,举例:
string[] names = { "张三", "李四", "王五", "赵六", "田七" };
string strNew = string.Join("|", names);同时:names可以直接写成字符串数组,因为支持params。
5、计时器
- 语法:
Stopwatch sw = new Stopwatch();
sw.Start();
//需要计时的内容;
sw.Stop();
Console.WriteLine(sw.Elapsed);//输出计时时间- 注意:需要添加格外的命名空间
评论