C#中的字符
一、字符类型:
1.值类型:
char:单个字符类型,只能含一个字符,如:’男’/’女’;char类型字符必须用英文输入法下的单引号围绕;
double:64位双精度浮点型,即存储范围较大的小数,如:12.32;范围:(+/-)5.0 x 10-324 到 (+/-)1.7 x 10308
float:64位双精度浮点型,即存储范围较大的小数,如:0.5;范围:-3.4 x 1038 到 + 3.4 x 1038
bool:只含真(true)、假(false)两种值的数据类型,通常用于逻辑判断;
结构:属于值类型,在栈中分配空间储存数值,char、double、float、bool等都属于结构,结构与类极为相似,也有字段、属性和方法;注意:不能给字段赋初始值;如果显示定义了带参构造方法,必须给所有字段赋值;不能显示定义无参构造方法;结构的对象不需要实例化;其注意事项也是结构与类的区别;
枚举:是为了限定取值范围的 ,限定合法值;比如:一个变量是int类型,但是可接受范围只有0-6,如果输入7则错误;
2. 引用类型:
string:允许给变量分配任何字符串值;如:“男生”/“女生”;string类型字符必须用英文输入法下的双引号围绕;
数组:用于储存同类型的多个值,并每个值与索引一一对应,索引是从0开始的整数递增,缺陷:在于建立数组必须确定其长度;
类:
语法:class 类名{字段、属性、方法}
类将多个对象的静态特征和动态特征等属性存储为一个类,方便多个对象调用,减少代码量;
对象实例化:类名 对象名= new 类名 ();
类中属性和方法的调用:类名.变量名、类名.方法名()
Object:对象(Object)类型 是 C# 通用类型系统(Common Type System - CTS)中所有数据类型的终极基类。所以对象(Object)类型可以被分配任何其他类型(值类型、引用类型、预定义类型或用户自定义类型)的值。但是,在分配值之前,需要先进行类型转换。当一个值类型转换为对象类型时,则被称为 装箱;另一方面,当一个对象类型转换为值类型时,则被称为 拆箱。
接口:
语法:interface I接口名{void 方法名();}
为了解决继承的单根性,让派生类承接更多类的特性,衍生而来的接口类型;如:基类:乐器类;派生类:学生类;
而其中有一个学生类的对象学生A不仅会乐器,而且熟悉多种乐器,如:吉他、钢琴、琵琶,此时可以创建相应的接口,让A承接,注意:接口是仅仅指定函数,又不实现他们的引用类型,及接口的方法()后面没有可实现的{代码块};
集合:可存储不同类型的多个值
常用的集合类型:
ArrayList:动态数组,与数组相比,建立时可不固定长度;
常用操作:insert(插入)、clear(清空)、contains(查找)、count(长度)、add(添加)、remove(移除)等;
注意:向ArrayList添加元素时,会隐私自动将值类型转换为object类型(装箱操作),所以从ArrayList获取元素时,必须进行类型强转,转换为所需的字符类型(拆箱操作);
List<T>:列表,<T>表示泛型类,建立列表时,<T>设置为哪种字符类型则List中储存的元素即为对应类型;优点:可避免装箱、拆箱操作;
常用操作:与ArrayList一致;
HashTable:键-值对集合,每个value都有相应的key对应;方便value的查询和获取操作;
常用操作:count(长度)、add(添加)、remove(移除)等;
Dictionary<k,v>:字典,也是键-值对集合,每个value都有相应的key对应;区别:多2个泛型参数,优点:可避免装箱、拆箱操作;
常用操作:与HashTable一致;
初始化器:
Dictionary<k,v> dic=new Dictionary<k,v>()
{
{key1,value1},{key2,value2},{key3,value3}
};