C#入门学习——字符串方法

命名空间

我们可以认为类是属于命名空间的,如果当前项目中没有这个类的命名空间,需要我们手动的导入这个类所在的命名空间。

1.光标去点击

2.alt+shift+f10

3.记住直接写

当我们需要在一个项目中引用另一个项目的类的时候,首先需要添加引用

然后再引用命名空间

 

值类型和引用类型

值类型:int double bool char decimal struct enum

引用类型:string 自定义类 数组 object 接口

值类型和引用类型在内存上存储的地方不一样:值类型的值是存储在内存的栈中,引用类型的值是存储在内存的堆中。

传递值类型和传递引用类型的时候,传递的方法不一样:值类型我们称之为值传递,引用类型我们称之为引用传递。

值类型在复制的时候,传递的是这个值本身。

引用类型在复制的时候,传递的是对这个对象的引用。他们指向的是同一块空间,操作哪一个另一个都会改变。

 ref参数的实现原理

 

相当于把number的地址复制给n,栈中地址相同了。相当于同一块空间了,改变哪个,另一个都会改变。

字符串

字符串具有不可变性:当你给一个字符串重新赋值之后,老值并没有销毁,而是重新开辟了一块空间存储新值。

 这样会出现一个问题,当你对一个字符串大量的重新赋值的时候,就会产生很多内存垃圾。当程序结束后,GC扫描整个内存,如果发现有的空间没有被指向,立即把它销毁。

结合引用传递,s1和s2分别是什么?

string s1 = "zs";
string s2 = s1;
s2 = "ls";
Console.WriteLine(s1);
Console.WriteLine(s2);
Console.ReadKey();

由于字符串具有不可变性,所以s2开辟了另一块空间,s1是zs,s2是ls。

我们可以将字符串看做是char类型的一个只读数组。

            string s = "abcdefg";
            //s[0] = 'b'; 不能这样做
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值