构造函数
构造函数是一个特殊的方法
1.构造函数没有返回值
2.与类名相同
创建对象时会调用构造函数
可以使用构造函数初始化值
new
1.在内存中开辟空间
2.在开辟空间中创建对象
3.调用对象的构造函数初始化对象
类中有默认构造 同c++
this关键字
1.指向当前对象 类似于this指针//用于区分属性和局部变量
this.Name;
*2.在类当中显式的调用本类的构造函数
public student(int Name):this(传过去的参数)
{
}
析构函数
/// <summary>
/// 程序结束时执行
/// </summary>
/// GC Garbage Collection 帮助我们释放资源
~student()
{
}
继承
命名空间
用于解决类重名问题
快捷引用命名空间 alt + shift +f10
不同项目的命名空间引用
1.添加引用
2.引用命名空间
值类型和引用类型
区别: 1.值类型和引用类型在内存上存储的地方不同
2.值传递和引用传递的方式不同
值类型:int double bool char decimal struct enum(栈)
引用类型:string 自定义类 数组(堆)
字符串的不可变性
当赋值一个新值后,老值在堆上并没有被覆盖掉,会重新开辟一块新空间
gc删除旧值
字符串的方法
即时窗口调查内存
可以将字符串看成char类型的只读数组
s[index]//访问字符串中的元素
//无法进行赋值
s.ToCharArray()//将字符串转化为char类型的数组
//然后再重新new一个string对象,重新赋值
StringBuilder类
计时器 Stopwatch
Stopwatch sw =new Stopwatch();
sw.Start();//开始计时
sw.Stop();//结束计时
StringBuilder stb = new StringBuilder();
sw.Start();//开始计时
for (int i = 0; i < 10000;++i)
{
stb.Append(i);
}//不开辟新空间,最终再tostring转化为字符串
//适合大量字符串创建时
一切类型都可以Tostring转化为字符串
string对象封装的方法
Length//当前字符串长度
ToUpper//将字符串转化为大写
ToLower//将字符串转化为小写、
Equals//确定此字符串于比较的字符串是否有相同的值
s1.Equals(s2,StringComparison.OrdinalIgnoreCase)
//枚举类型忽略大小写
分割字符串 Split
char[] chs ={需要分割的字符};
string s = str.Split(chs);
string s = str.Split(chs,StringSplitOption.RemoveEmptyEntries);//去除空字符
Replace //替换字符串中的字符
Substring //截取字符串 从指定的索引截取 Substring (索引,个数);
Contains//是否包含某子串
StartWith//以某个字符串开头
EndWith//以某个字符串结尾
IndexOf //获取某个字符第一次出现的索引
LastindexOf//最后出现的位置
Trim //去除空格
TrimStart //去除前面的空格
TrimEnd //去除后面的空格
Join //连接字符串
string a = string.Join("|", names);