1、值类型与引用类型:
值类型:包括结构、枚举、整数型、浮点数、布尔值;
引用类型:以class关键字定义的类型都是引用类型;
1).赋值时区别
值类型的变量将直接获得一个真实的数据副本
引用类型的赋值仅仅是吧对象的引用赋给变量,可导致多个变量引用一个实际对象实例上
2).内存分配的区别
值类型的对象会在堆栈上分配内存,
引用类型的对象会在堆上分配内存。
3).继承结构的区别
值类型都继承自 System.ValueType 对象分配在 堆栈 上
System.Object和所有引用类型对象分配在 堆 上;
2、装箱、拆箱
3、C#中ref和out使用
namespace BookStrap
{
public partial class WebForm1 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//这里必须赋值
int x=10;
int y=10;
GetValueRef(ref x, ref y);
Response.Write(x + "<br />");
Response.Write(y);
Response.Write("<br />");
//这里可以不用赋值
int a;
int b;
GetValueOut(out a, out b);
Response.Write(a + "<br />");
Response.Write(b);
}
public void GetValueRef(ref int x, ref int y)
{
//这里可以不用赋值
x = 300;
y = 320;
}
public void GetValueOut(out int a, out int b)
{
//这里必须赋值
a = 210;
b = 220;
}
}
}
定义和调用:
=============================
C#中Base和this关键字:
http://www.cnblogs.com/reommmm/archive/2009/03/23/1419573.html