RamezanBeik
چهارشنبه 11 فروردین 1395, 07:06 صبح
با سلام خدمت اساتید محترم
همانطور که همه می دانیم زمانی که پارامتر ورودی یک متد که به صورت Ref مییاشد در واقع آدرس متغییر را برایمتد ارسال میکند نه یک کپی از مقدار
حالا اگر یک object از یک کلاس را به عنوان ورودی متدی که پارامتر ورودی Ref می گیردارسال کنیم چه اتفاقی می افتد؟
مگر جز این نیست که خود Object ایجاد شده از نوع Ref می باشد؟
public class C1
{
public void DoSomthing_A(C2 bar)
{
bar.Value = 1;
}
public void DoSomthing_B(ref C2 bar)
{
bar.Value = 1;
}
}
public class C2
{
private int _value = 0;
public int Value
{
get { return this._value; }
set { _value = value; }
}
}
class Program
{
static void Main(string[] args)
{
C1 m_C1 = new C1();
C2 m_C2 = new C2();
m_C1.DoSomthing_A(m_C2);
m_C1.DoSomthing_B(ref m_C2);
}
}
همانطور که همه می دانیم زمانی که پارامتر ورودی یک متد که به صورت Ref مییاشد در واقع آدرس متغییر را برایمتد ارسال میکند نه یک کپی از مقدار
حالا اگر یک object از یک کلاس را به عنوان ورودی متدی که پارامتر ورودی Ref می گیردارسال کنیم چه اتفاقی می افتد؟
مگر جز این نیست که خود Object ایجاد شده از نوع Ref می باشد؟
public class C1
{
public void DoSomthing_A(C2 bar)
{
bar.Value = 1;
}
public void DoSomthing_B(ref C2 bar)
{
bar.Value = 1;
}
}
public class C2
{
private int _value = 0;
public int Value
{
get { return this._value; }
set { _value = value; }
}
}
class Program
{
static void Main(string[] args)
{
C1 m_C1 = new C1();
C2 m_C2 = new C2();
m_C1.DoSomthing_A(m_C2);
m_C1.DoSomthing_B(ref m_C2);
}
}