C#基础语法一文通(三)

在VS code中创建C#项目

  1. ctrl+shift+y打开控制台
  2. 选到终端
  3. cd到您想创建项目的文件夹
  4. 如果新建 可 mkdir xxxxxx 新建
  5. dotnet new console
  6. 此时创建好了一个项目,program.cs中有了一个hello world的模板程序
  7. 开始秀吧!

一. 数据类型

数据类型的分类:

值类型:存数据

引用类型:存地址(引用类型传递的是地址(钥匙),不用返回值)

v2-0d374389e61b3be1a4a9113a81927db8_b.jpg

v2-f809363be967a6aef077dd8224eb8a57_b.jpg

二. 内存的分配

v2-247175785a00686135176d4dd174e10b_b.jpg

三. 数组传参传地址

所以,无返回值即可改变数组!(但方法中不要重新给数组换地址!!)

例:

        static void Main(){int[] arr={1};Sum(arr);Console.WriteLine(arr[0]);}private static void Sum(int[] arr){arr[0]=2;}}

四. 方法的 值参数,引用参数,输出参数

  • 值参数:传递值 //作用:传递信息
  • 引用参数(ref):传递引用的内存地址(钥匙) //作用:从方法内部改变外部变量
                static void Main(){int a =1;Fun(ref a);}private static void Fun(ref int a){}

· 输出参数(out):按引用传递

//作用:返回结果 方法(函数)除了返回值,还可以返回无数个out.

                static void Main(){int a =1;Fun(out a);}private static void Fun(out int a){a=2;}

与引用参数(ref)的区别:

①: 输出参数(out)调用过程必须对其赋值;

②: 输出参数(out)传递之前可以不赋值;

五. 数据类型尝试转换

int.TryParse(要转换的string,out 转换结果) 返回值:转换成功否;

                    int a;bool sc=int.TryParse(Console.ReadLine(),out a);


六. 拆装箱

v2-acea12b094cd1f232c207d4aec6847a8_b.jpg

装箱操作存储方法:

v2-988c40ca4f4caa1a3e0ba49699243e6c_b.jpg

装箱:

v2-4bdedf2869dd393fdc971fdf8ea0dae2_b.jpg

拆箱:

v2-6a636c27e92d3758897e8b97d758c9da_b.jpg

避免拆装箱:

v2-13920d4d642984ce69f908c636377e1f_b.png


例:

v2-630dba442a295f848f05d9e91cf2e3a7_b.png

v2-332366180b9228912f210ba5d728320e_b.png

所以拼接字符串不要

v2-3218f9b46834c13bbf61dedafed73303_b.png

应该

v2-854736011875f09fd323725f6ecc02e5_b.png

七. 字符串池

v2-35fd6ce58968dfb83340ff8a9fa0250c_b.jpg

八, 可变字符串

由于字符串池原理,字符串拼接会产生大量垃圾,由此引出可变字符串

可变字符串写法

StringBuilder builder=newStringBuilder([建议起始字符空间大小]);//只是建议大小,超过行,但是会产生垃圾

        using System.Text;StringBuilder builder=new StringBuilder(10);for(int i=0;i<10;i++){builder.Append(i);}String str=builder.ToString();

可变字符串方法:

Append(要添加的值):向字符串中尾部加入字符

Insert(插入位置,要添加的值): 在指定位置之前添加字符

Replace("老值","新值");替换值

Remove(起始位置,删除长度);删除值

        StringBuilder builder=new StringBuilder(15);for(int i=0;i<10;i++){builder.Append(i);}builder.Insert(9,"孙悟空");builder.Replace("悟空","猴子");builder.Remove(12,1);String str=builder.ToString();

九, 字符串方法

1.str.ToCharArray() //将字符串转化为字符数组

char[] arr=str.ToCharArray(); //返回字符数组

2.str.Insert(起始位置,"新字符串"); //从起始位置之前插入字符串

str=str.Insert(2,"孙悟空"); //返回新字符串

3. str.Contains("字符串"); //是否含有某个字符串

bool have=str.Contains("孙"); //返回布尔值

4,str.ToLower(); //字符串全部小写

str=str.ToLower(); //返回新字符串

5,str.ToUper(); //字符串全部小写

6.str.IndexOf("?");//字符串中第一个?的位置

int a=str.IndexOf("孙"); //返回int类型索引值

7, str.Substring (起始位置,[长度]);//用于截取字符窜的某一部分

str=str.Substring (3,2);//返回新的字符串

8. str.Trim(); //去除首尾空格

str=str.Trim(); //返回处理后的字符串

9.str.Split("断点字符"); //用断点字符做断点,将字符串,拆分成若干字符串数组.

string[] strs=str.Split("b"); //返回字符串数组

10.str.Replace("旧字符串","新字符串");//将旧字符串替换为新字符串

str=str.Replace("悟空","猴子"); //返回替换后的字符串

11.str=string.Join("中间间隔字符",字符串数组); //将两个字符串合并,返回新字符串

(注意此方法是string来调用)


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部