C#

学C#的第10天(上)

森岩
2022-07-25 / 0 评论 / 2 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2022年07月26日,已超过1229天没有更新,若内容或图片失效,请留言反馈。
1、命名空间
  1. 可以认为类是属于命名空间的,命名空间可以理解为是类的文件夹
  2. 如果在当前项目中没有这个类的命名空间,需要我们手动导入:
    1)用鼠标点左下角的方块
    2)alt+shift+F10
    3)背住几个常用的命名空间
2、同一解决方案内,引用其他项目的类
  1. 添加引用:
    右击“引用”
  2. 引用命名空间
    在命名空间中写using 项目名
3、值类型和引用类型
  1. 区别:
    1)值类型和引用类型在内存上存储的地方不一样
    2)在传递值类型和传递引用类型的时候,传递的方式不一样。值类型我们称之为值传递,引用类型我们称之为引用传递。
  2. 我们学过的值类型和引用类型:
    值类型:int、double、bool、char、decimal、struct、enum
    引用类型:string、自定义类
  3. 储存:
    值类型的值储存在栈当中
    引用类型的值储存在堆中。但是也在栈里面开空间,对应的储存堆的地址。
4、字符串
1. 字符串的不可变性

当你给一个字符串重新赋值的时候,老值并没有销毁,而是重新开辟一块空间储存新值。

2. 字符串在堆中的清理

当程序结束后,GC扫描整个内存,如果发现有的空间没有被指向,则立即把他销毁

3. 字符串的重新赋值

当给两个字符串变量赋同一个值,此时栈中开辟两个空间,但是堆中只开辟一个空间,两个栈都指向这个堆

4. 可以把字符串看作一个char类型的一个只读数组
  1. 使用例:
            string s = "abcdefg";
            Console.WriteLine(s[0]);
  1. 如果非要把一个字符串中的某一个字母替换,则需要先将其转换成真正的char数组
            char[] chs = s.ToCharArray();//将字符串转换为char数组
            chs[0] = 'b';
            s = new string(chs);//将char数组转换为字符串
5. StringBuilder
  1. 作用:为了解决string每次重新赋值都要开空间导致的程序缓慢
  2. 使用例:
            StringBuilder sb = new StringBuilder();
            for (int i = 0; i < 100000; i++)
            {
                sb.Append(i);
            }
            Console.WriteLine(sb.ToString());
  1. 一般来说,使用StringBuilder创建的字符串仍转换成string类型使用
6.字符串提供的各种方法
  1. Length:获得当前字符串中字符的个数变量.Length
  2. ToUpper():将字符转换成大写形式变量.ToUpper()
  3. ToLower():将字符转换成小写形式变量.ToLower()
  4. Equals():比较两个字符串的方法,举例(忽略大小写):
class1.Equals(class2, StringComparison.OrdinalIgnoreCase)
  1. 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("老赵", "**");
            }
  1. Substring():截取字符串,括号里是开始截取的位置,截取的长度,举例:
            string str = "今天天气好晴朗,处处好风光";
            str = str.Substring(1, 2);
  1. bool StartsWith(string value):判断字符串中是否以字串value开始
  2. bool EndsWith(string value):判断字符串中是否以字串value结束
  3. int IndexOf(string value):取字串value第一次出现的位置,逗号后面可以设置从字符串的哪一个位置开始查找。如果整个字符串没有value,则返回-1
  4. int LastIndexOf(string value):取字串value最后一次出现的位置。可以和Substring联合使用,在文件路径字符串中取文件名
  5. Trim():去掉字符串前后的空格
    TrimEnd():去掉字符串后面的空格
    TrinStart():去掉字符串前面的空格
  6. IsNullOrEmpty():判断字符串里面是不是空的或者无内容
  7. Join():可以把指定内容加在字符串数组每两个之间,输出一整个字符串,举例:
            string[] names = { "张三", "李四", "王五", "赵六", "田七" };
            string strNew = string.Join("|", names);

  同时:names可以直接写成字符串数组,因为支持params。

5、计时器
  1. 语法:
            Stopwatch sw = new Stopwatch();
            sw.Start();
            //需要计时的内容;
            sw.Stop();
            Console.WriteLine(sw.Elapsed);//输出计时时间
  1. 注意:需要添加格外的命名空间
0

评论

博主关闭了所有页面的评论