Posted on 2007-08-23 13:24
停留的风 阅读(394)
评论(0) 编辑 收藏 所属分类:
C#学习历程
结构和类非常相似,但结构是值类型,而类是引用类型。
对象是引用类型,在把对象付给变量时,实际上是把带有一个指针的变量赋给了该指针所指向的对象,指针是内存中的一个地址。在这种情况下,地址是内存中该对象所在的位置。在用下面的代码把一个对象引用赋给类型为MyClass的第二个变量时,实际上是复制了这个地址。
myClass objectB=objectA;
这样两个变量就包含同一个对象的指针。
结构是值类型,其变量并不是包含节后的指针,而是包含结构本身。在下面的代码把第一个结构赋给类型为myStruct的第二个变量时,实际上是把第一个结构的所有信息复制到另一个结构中。
myStruct structB=structA;
使用指针的技术隐藏在C#代码中,它使得代码更简单,使用C#中的不安全代码可以进行低级操作。
using System;
using System.Collections.Generic;
using System.Text;
namespace structAndClass
{
class MyClass
{
public int val;
}
struct myStruct
{
public int val;
}
class Program
{
static void Main(string[] args)
{
MyClass objectA = new MyClass();
MyClass objectB = objectA;
objectA.val = 10;
objectB.val = 20;
myStruct structA = new myStruct();
myStruct structB = structA;
structA.val = 30;
structB.val = 40;
Console.WriteLine("objectA.val={0}",objectA.val);
Console.WriteLine("objectB.val={0}", objectB.val);
Console.WriteLine("structA.val={0}", structA.val);
Console.WriteLine("structB.val={0}", structB.val);
Console.ReadKey();
}
}
}
运行图: