ITPub博客

首页 > 应用开发 > IT综合 > 引用类型和值类型的区分

引用类型和值类型的区分

原创 IT综合 作者:liudeliu123 时间:2006-05-12 14:07:44 0 删除 编辑

//struct 这个是值类型
struct Fraction
{
public int numerator;
public int denominator;
}
class Class_02_06
{

public static void main(string []args)

{

Fraction x;
x.numerator=1;
x.denominator=2;
fraction y=x;
Console.WriteLine("x={0}/{1}",x.numerator,x.denominator);
Console.WriteLine("y={0}/{1}",y.numerator,y.denominator);
x.numerator=3;
y.denominator=3;
Console.WriteLine("x={0}/{1}",x.numerator,x.denominator);
Console.WriteLine("y={0}/{1}",y.numerator,y.denominator);
}

}
//运行的结果是 X=1/2 Y=1/2 X=3/2 Y=1/3

//class 是引用类型
class Fraction
{
public int numerator;
public int denominator;
}
class Class_02_08
{
public static void Main(string[] args)
{
Fraction x=new Fraction();
x.numerator=1;
x.denominator=2;
Fraction y=x;
Console.WriteLine("x={0}/{1}",x.numerator,x.denominator);
Console.WriteLine("y={0}/{1}",y.numerator,y.denominator);
x.numerator=3
Console.WriteLine("x={0}/{1}",x.numerator,x.denominator);
Console.WriteLine("y={0}/{1}",y.numerator,y.denominator);
y.denominator=3;
Console.WriteLine("x={0}/{1}",x.numerator,x.denominator);
Console.WriteLine("y={0}/{1}",y.numerator,y.denominator);
}
}

//运行结果是: 1/2 1/2 3/2 3/2 3/3 3/3

[@more@]引用类型的赋值是传递了一个引用给对方,无论是操作X,Y,实际上操作的是同一个东西
而值类型的X,Y不互相影响,他是纯粹的COPY

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7257938/viewspace-834602/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2009-10-13

  • 博文量
    14
  • 访问量
    452520