Chapter 8 值类型和引用类型
上一篇 /
下一篇 2012-04-07 21:15:13 / 天气: 晴朗
/ 心情: 高兴
/ 个人分类:C# 2010 学习
1值类型变量的值存放在Stack;
2引用类型变量的值存放在stack中,是指向的变量的地址,该指向的变量存放在heap中。stack一般存放的数据较
qXC-JT d UC5WF0
小,heap 存放的对象较大。
Circle c ;
c = new Circle (param);// c 存放在stack, new 出来的对象存放在heap 中。
3 null 是任何引用的默认值。
4 使用Nullable 类型
int ? i = null;//代表i 可以赋值为null;
int j = 99;
i =100;
i = j;
51Testing软件测试网L$Y0k5o*jY-J]NaJF
j = i; //illegal 因为整型变量j 不能被赋值为null;
int ? j =i //这个语句是可以的,应为此时j 值可以为null;
51Testing软件测试网A1q+|9jwWQ2j;t
5 使用ref 参数 和 out 参数
都是用于对参数的引用传递,之间的区别就是ref 的参数必须初始化,out 的参数可以不做初始化。
Ry"?"Yn|0
6 装箱和拆箱
int i = 42;
object o = i; //装箱
Rl:Dv+Q l;^\,_~
Z3e0
int j = (int)o;//拆箱
51Testing软件测试网)L'{{ w\9v`
7System.Object 类
Circle c ;
c = new Circle(42);
object o;
o = c; //子类可以赋值给父类。所有类的对象都可以赋值给object 对象。
51Testing软件测试网'R L7O1g_8f"YW X9?
8 安全的数据类型转换
Is 运算符
object o = c;
if (o is int)
{
int k = (int)o;
}
else if (o is circle)
{
Circle c2 = (Circle)o;
Console.WriteLine(c2.Area());
}
as 运算符
51Testing软件测试网%Y{+f2P7Qm*Vl
object o = c;
:p:i'qQ#E n d!YL2eB,M(H0
int? k = o as int?;
if(k ! = null)
{
Console.WriteLine(K);
}
else
{
Circle c2 = o as Circle;
if (c2 != null)
{
Console.WriteLine(c2.Area());
}
}
收藏
举报
TAG: