C#学习笔记
1、关于C#字符串的常用方法
1、ToUpper() ToLower()
- 将字符转换成大小写形式,仅对字母有效,返回值是转换后的字符串
- 字符串变量.方法名()
2、Equals()
- 比较俩个字符串是否相同,相同返回真,不相同返回假。
- 字符串变量.方法名(要比较的子字符串)
3、Split()
- 分割字符串,返回字符串类型的数组
- 字符串变量.方法名(用于分割的字符数组)
4、Substring()
截取字符串,返回截取后的字符串
- 字符串变量.方法名(开始截取的位置)
- 字符串变量.方法名(开始截取的位置,截取多长)
5、IndexOf() LastIndexOf()
- 查找某个字符串在字符串中第一次或最后一次出现的位置,返回所在的索引位置值,如果没有找到,返回-1
- 字符串变量名.方法名(子字符串)
6、StartsWith() EndsWith()
- 判断是否以某某字符串开始或者结束,如果是,返回真,如果不是,返回假
- 字符串变量.方法名(子字符串)
7、Replace()
- 将字符串中的某个字符串替换成一个新的字符串,返回新的字符串
- 字符串变量.方法名(旧字符串,新字符串)
8、Contain()
- 判断某个字符串中是否包含指定的字符串,如果包含则返回真,否则返回假
- 字符串变量.方法名(子字符串)
9、Trim() TrimEnd()(后面) TrimStart()(前面)
- 去掉字符串前后的空格,返回处理之后的字符串
- 字符串变量.方法名()
10、IsNullOrEmpty()
- 判断一个字符串是否为Null或者空,如果为Null或者为空,返回真,否则返回假(null是不占内存空间的,而空字符串“”是占内存空间的)
- string.方法名(字符串变量)
关于虚方法,抽象类,接口区别
关于泛型约束
泛型最大的优点就是做到了通用。
【1】new()约束–表示T类型只接收带一个无参数的构造函数
public static void display<T>(T t) where T :new()
{
Console.WriteLine(t.ToString());
}
【2】struct值类型约束
值类型包括:结构类型struct/int、double、bool、枚举
public static void display<T>(T t) where T :struct
{
Console.WriteLine(t.ToString());
}
【3】class引用类型约束
引用类型包括:数组、类、接口、object、字符串
public static void display<T>(T t) where T :class
{
Console.WriteLine(t.ToString());
}
【4】自定义类型约束
public static void display<T>(T t) where T :B
{
Console.WriteLine(t.ToString());
}
关于多态中的里氏转换原则
- 子类对象可以直接赋值给父类变量
- 子类对象可以调用父类中的成员,但是父类对象永远只能调用直接的成员
- 如果父类对象中装的是子类对象,可以将这个对象强转换为子类对象。