在VS code中创建C#项目
- ctrl+shift+y打开控制台
- 选到终端
- cd到您想创建项目的文件夹
- 如果新建 可 mkdir xxxxxx 新建
- dotnet new console
- 此时创建好了一个项目,program.cs中有了一个hello world的模板程序
- 开始秀吧!
一. 数据类型
数据类型的分类:
①值类型:存数据
②引用类型:存地址(引用类型传递的是地址(钥匙),不用返回值)
二. 内存的分配
三. 数组传参传地址
所以,无返回值即可改变数组!(但方法中不要重新给数组换地址!!)
例:
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);
六. 拆装箱
装箱操作存储方法:
装箱:
拆箱:
避免拆装箱:
例:
所以拼接字符串不要
应该
七. 字符串池
八, 可变字符串
由于字符串池原理,字符串拼接会产生大量垃圾,由此引出可变字符串
可变字符串写法
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来调用)