Posted on 2007-08-23 13:24
停留的風 閱讀(404)
評論(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();
}
}
}
運行圖:
