欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

一道關(guān)于C#參數(shù)傳遞的面試題分析

 更新時(shí)間:2015年05月15日 11:25:52   作者:永遠(yuǎn)愛(ài)好寫(xiě)程序  
這篇文章主要介紹了一道關(guān)于C#參數(shù)傳遞的面試題,實(shí)例分析了C#參數(shù)傳遞的相關(guān)使用技巧,需要的朋友可以參考下

本文實(shí)例分析了一道關(guān)于C#參數(shù)傳遞的面試題。分享給大家供大家參考。具體如下:

1.定義一個(gè)類MPigeon,調(diào)用一個(gè)Swap交互函數(shù),問(wèn)最后實(shí)參的結(jié)果是什么

類定義:

public class MPigeon
{
public string Name { get; set; }
}

交換函數(shù):

public void Swap(object a,object b)
{
  object temp=a;
  a=b;
  b=temp;
}

測(cè)試代碼:

private void button2_Click(object sender, EventArgs e)
{
  MPigeon a = new MPigeon() { Name = "Black" };
  MPigeon b = new MPigeon() { Name = "White" };
  Swap(a, b);
  string ResultMsg = string.Format("a:{0},b:{1}", a.Name, b.Name);
  MessageBox.Show(ResultMsg);
}

結(jié)果顯示如下:

結(jié)果分析:

由于實(shí)參變量和形參變量都是引用類型,它們都指向內(nèi)存堆中的某一對(duì)象的地址,
函數(shù)是將實(shí)參變量指向的地址值復(fù)制了一份給形參變量,由于形參變量和實(shí)參變量指向堆中同一地址
由于是復(fù)制了一份,所以實(shí)參的地址在swap函數(shù)中是沒(méi)有被改變的,所以最后輸出的結(jié)果,實(shí)參的值和原來(lái)是完全一樣的

(注意:swap函數(shù)只是交互了一下形參的地址而已,而沒(méi)有改變它們的值,如果改變了值,那實(shí)參的值也會(huì)跟著改變)

例如:

public void Swap2(object a, object b)
{
  ((MPigeon)a).Name = "Ronaldo";
  ((MPigeon)b).Name = "Rivaldo";
}

希望本文所述對(duì)大家的C#程序設(shè)計(jì)有所幫助。

相關(guān)文章

最新評(píng)論