c#中的引用和调用的区别

来源:百度知道 编辑:UC知道 时间:2024/05/07 12:47:02
什么是引用?
什么是调用?
他们的区别是什么?
能否举例说明?

引用一般就是一个指针,它指向一个实体的物理内存。通常C#中除了值类型的对象之外所有的对象都是引用类型。也就是说当你调用一个引用类型的对象的时候,它会将自己指向的地址传递给你,然后根据地址去做你想做的事情。

例如: Object obj = new Object();
obj = new Object();
上面这个语句中,Object obj的意思就是创建一个Object类型的引用类型对象obj,其实这个obj只是一个指针,系统会在内存中创建一个对象堆栈专门存放这种指针。而new Object()做的是在内存中开辟一块内存空间实际存放一个对象。然后 = 号将指针obj指向由new Object()开辟的这个内存控件。第二个语句中又使用了new Object()创建了一个新的Object类型的内存控件,这个空间是全新的,然后又将obj的指针指向了新的这个内存。在这里 obj对象就是一个引用其实就是一个指针。

调用是一个动作,是对象与对象之间交互的时候,互相做的动作。因此引用和调用不是同一类东西。一般来说当一个类使用到本类或者其他类内部的对象、字段、事件、方法、属性等的时候就叫调用,相当于将别人的东西拿过来用。

例如:
public Class A
{
public void SetA()
{
}
}

public Class B
{
public void Operation()
{
A a = new A();
a.SetA();
}
}

上面这个例子中在B的Operation方法中创建了一个A对象,然后a.SetA(),就是一次调用的动作。

记住调用永远都是一个动作,而引用只是一个指针。这里要明确一点"调用"是一个动词,而"引用"你要理解成一个名次它等与"指针"。这样就可以了。