C#学习系列之六:C#类型
1.C#中的类型
在C#的类型,分为两种:值类型与引用类型.
值类型是存放在系统的堆栈中(线程栈),引用类型是存放在系统的堆当中(托管堆).
值类型包括:预定义类型除去string和object(内置的值类型),枚举,结构体.
引用类型包括:数组,类类型,接口,委托,string,object类型等
2.装箱与拆箱
值类型与引用类型之间的互相转换叫做装箱与拆箱的操作
将值类型转换为引用类型叫做"装箱操作"
将引用类型转换为值类型时叫"拆箱操作"
如果装箱的时候使用的是什么类型,在拆箱时同样要使用该类型.
在进行拆箱时,必须得经过装箱.
在C#的类型,分为两种:值类型与引用类型.
值类型是存放在系统的堆栈中(线程栈),引用类型是存放在系统的堆当中(托管堆).
值类型包括:预定义类型除去string和object(内置的值类型),枚举,结构体.
引用类型包括:数组,类类型,接口,委托,string,object类型等
2.装箱与拆箱
值类型与引用类型之间的互相转换叫做装箱与拆箱的操作
将值类型转换为引用类型叫做"装箱操作"
将引用类型转换为值类型时叫"拆箱操作"
如果装箱的时候使用的是什么类型,在拆箱时同样要使用该类型.
在进行拆箱时,必须得经过装箱.
3.Object类型
object类型是所有类型的父类型,任何类型在转换为object类型时都不会丢失数据.
4.String类型
string类型是特殊的引用类型,他的使用方式与值类型非常相似.
string类型中的常用方法或属性:
Length属性,用来表示字符串的长度
Remove()方法,删除指定位置开始的字符串,同时可以指定要删除的字符串的个数.并返回删除之后的结果.
ToCharArray() 方法,将字符串返回char类型的数组.字符串中每一个字符都变为数组的单个元素.
Split()方法 将字符串用指定的字符进行分割,并返回一个string类型的数组
Contains()方法,是用来返回是否包括指定的字符串.指定的字符串放在方法的参数中,该方法返回类型为bool.
1 using System;
2 using System.Collections.Generic;
3 using System.Text;
4
5 namespace _04
6 {
7 class Program
8 {
9 enum sex:int //枚举都有默认值,从0开始递增+1
10 {
11 男,
12 女,
13 非男非女
14
15 }
16 static void Main(string[] args)
17 {
18 //值类型
19 int i = 1;
20 int j = i;
21 j=10;
22 Console.WriteLine("i的值={0}",i);
23
24 //引用类型
25 int[] arri = new int[] { 1 };
26 int[] arrj = arri;
27 arrj[0] = 10;
28 Console.WriteLine(arri[0]);
29
30 //打印枚举的值
31 Console.WriteLine(sex.男);//直接打印项
32 Console.WriteLine((int)sex.男);//打印项的值
33 Console.WriteLine(sex.女);
34 Console.WriteLine((int)sex.女);
35 Console.WriteLine(sex.非男非女);
36 Console.WriteLine((int)sex.非男非女);
37
38 //常量
39 const int ci = 1; //赋值后不能再更改
40
41 //装箱拆箱:装进什么拆出来就是什么()
42 int zxi = 2;
43 object o = zxi; //装箱:把引用类型转化成值类型
44 int cxi = (int)o; //拆箱 把值类型转化成应用类型
45
46
47
48
49 }
50 }
51 }
52
2 using System.Collections.Generic;
3 using System.Text;
4
5 namespace _04
6 {
7 class Program
8 {
9 enum sex:int //枚举都有默认值,从0开始递增+1
10 {
11 男,
12 女,
13 非男非女
14
15 }
16 static void Main(string[] args)
17 {
18 //值类型
19 int i = 1;
20 int j = i;
21 j=10;
22 Console.WriteLine("i的值={0}",i);
23
24 //引用类型
25 int[] arri = new int[] { 1 };
26 int[] arrj = arri;
27 arrj[0] = 10;
28 Console.WriteLine(arri[0]);
29
30 //打印枚举的值
31 Console.WriteLine(sex.男);//直接打印项
32 Console.WriteLine((int)sex.男);//打印项的值
33 Console.WriteLine(sex.女);
34 Console.WriteLine((int)sex.女);
35 Console.WriteLine(sex.非男非女);
36 Console.WriteLine((int)sex.非男非女);
37
38 //常量
39 const int ci = 1; //赋值后不能再更改
40
41 //装箱拆箱:装进什么拆出来就是什么()
42 int zxi = 2;
43 object o = zxi; //装箱:把引用类型转化成值类型
44 int cxi = (int)o; //拆箱 把值类型转化成应用类型
45
46
47
48
49 }
50 }
51 }
52
1 using System;
2 using System.Collections.Generic;
3 using System.Text;
4
5 namespace _03
6 {
7 class Program
8 {
9 static void Main(string[] args)
10 {
11 string str = "123456789";
12 Console.WriteLine(str.Length);//计算STR的字符数
13 Console.WriteLine(str);
14 Console.WriteLine(str.Remove(2));//从第2个字符开始删除
15 Console.WriteLine(str.Remove(5));//从第5个字符开始删除
16
17 char[] c = str.ToCharArray(); //将字符串返回char类型的数组.字符串中每一个字符都变为数组的单个元素
18 Console.WriteLine(c);
19
20 string strs = "12,345,6789";
21 string[] strs2=strs.Split(',');
22 Console.WriteLine(strs2[0]);
23
24
25 Console.WriteLine(str.Contains("0"));//检查是否包含此字符
26 }
27 }
28 }
29
2 using System.Collections.Generic;
3 using System.Text;
4
5 namespace _03
6 {
7 class Program
8 {
9 static void Main(string[] args)
10 {
11 string str = "123456789";
12 Console.WriteLine(str.Length);//计算STR的字符数
13 Console.WriteLine(str);
14 Console.WriteLine(str.Remove(2));//从第2个字符开始删除
15 Console.WriteLine(str.Remove(5));//从第5个字符开始删除
16
17 char[] c = str.ToCharArray(); //将字符串返回char类型的数组.字符串中每一个字符都变为数组的单个元素
18 Console.WriteLine(c);
19
20 string strs = "12,345,6789";
21 string[] strs2=strs.Split(',');
22 Console.WriteLine(strs2[0]);
23
24
25 Console.WriteLine(str.Contains("0"));//检查是否包含此字符
26 }
27 }
28 }
29