Day10

Mor_
01命名空间
类在命名空间下,导入命名空间:
1)鼠标放在缺少命名空间的关键字上,鼠标点击或者Alt+Shift+F10;
2)手动引用命名空间;
02值类型和引用类型
001
1)值类型:int \ double \ decimal \bool \ char \ struct \ enum;
引用类型: string \ 数组 \ 自定义类
2)值类型的传递为值传递,引用类型的传递为引用传递;
3)值类型的值存储在内存的栈中,引用类型的值存储在内存的堆中;
002区别:
1)值类型和引用类型在内存中存储的位置不一样;
2)两者在传递时,传递的方式不一样;
03字符串
001字符串的不可变性
不可变性:当给字符串变量重新赋值时,其包含的原值并没有销毁,而是重新在堆中开辟一块空间存储新值,将新空间的地址放在在栈中开辟的空间内;
当程序结束后,GC(Garbage Collection)扫描整个内存,将没有指向的空间进行销毁;
002
1)查看栈和堆中的地址:即时窗口->&+变量名
2)将字符串看做char类型的只读数组,可通过下标访问某个元素;
3)如果需要写入元素,将字符串转换为char类型的数组,写入数据后再转回;
003
1)length:字符串长度;
2)ToUpper:字符串转大写;
3)ToLower:字符串转小写;
4)s1.Equals(s2 , StringComparison.OrdinalIgnoreCase):两个字符串进行不区分大小写的比较;
5)Split:分割字符串,返回字符串类型的数组;
string s = “jsfldj sljf + jlaf sd+sjfl sfjdl”;
char[] ch = { ’ ‘,’+’ };
string[] str = s.Split( ch, StringSplitOptions.RemoveEmptyEntries );
其中,按照char中的元素进行分割,RemoveEmptyEntries为移出空白字符串;
6)Substring(截取的起始位置):截取字符串;
7)IndexOf():判断某个字符在字符串中首次出现的位置,如果没有此字符则返回-1;
8)LastIndexOf():判断某个字符在字符串中最后一次出现的位置,如果没有此字符则返回-1;
9)StartWith():判断是否以…开始;
string str = “今天是多少号”;
if( str.StartWith( “今天” ) ){
Console.WriteLine(“判断正确”);
}
else{
Console.WriteLine(“判断不正确”);
}
10)EndWith():判断是否以…结尾;
11)Contains():判断字符串内是否包含有指定的字符串;
12)Replace():将字符串中的某一串进行替换;
string str = “今天是多少号”;
if( str.Contains( “多少” ) ){
str.Replace( “多少”,”2” );
}
13)Trim():去掉字符串中前后的空格;
14)TrimEnd():去掉字符串中结尾的空格;
15)TrimStart():去掉字符串中前面的空格;
16)string.IsNullOrEmpty():判断一个字符串是否为空或null;
17)string.Join():将数组连接成字符串,并插入指定元素;
string[] days = { “周一”,”周二”,”周三” };
string str = string.Join( ” | “,days );
//string.Join( ” | “,”周一”,”周二”,”周三” );

After_
01继承
001
1)子类继承了父类的属性和方法,但对于父类的私有字段,子类不能调用,或者说子类没有继承父类的私有字段;
2)子类并没有继承父类的构造函数,但在子类创建对象时,会先调用父类的构造函数,从而创建父类对象(这样可以使子类通过该对象调用父类中的成员),再调用自身的构造函数创建自身类的对象;
如果在父类中编写了有参的构造函数之后,默认的无参构造函数会被销毁,从而子类无法调用到父类的默认无参构造函数,进而无法创建父类对象,可能导致子类报错;可以在子类中编写有参的构造函数;
3)继承特性:单根性和传递性;
002查看类图
视图->类图;
003
关键词new会隐藏父类的同名方法成员,如果没有new会报警告;
public void Draw(){
code;
}//父类成员函数
public new void Draw(){
code;
}//子类成员函数,函数会掩盖继承于父类的成员函数

你可能感兴趣的:(.Net面向对象)