يكشنبه, ۲۹ مرداد ۱۳۹۶، ۱۰:۱۱ ق.ظ
یک نکته درباره پارامتر ref
وقتی که یک value type به یک متد فرستاده می شود، مقدار آن پس از فراخوانی متد تغییری نمی کند. مانند مثال زیر:
بعد از اجرای برنامه مقدار متغیر a قبل و بعد متد یکسان خواهد بود. اما گاهی لازم است مقدار متغیر a بعد از این که به عنوان آرگومان به متد فرستاده شد تغییر کند لذا از پارامتری به نام ref قبل از نام آرگومان و پارامتر استفاده می کنیم.
class Power
{
public void Pow( int i)
{
i= i*i;
}
}
class Program
{
static void Main(string[] args)
{
Power ob = new Power();
int a = 5;
Console.WriteLine("a before method" + a);
ob.Pow( a);
Console.WriteLine("a after method " + a);
}
}
{
public void Pow( int i)
{
i= i*i;
}
}
class Program
{
static void Main(string[] args)
{
Power ob = new Power();
int a = 5;
Console.WriteLine("a before method" + a);
ob.Pow( a);
Console.WriteLine("a after method " + a);
}
}
بعد از اجرای برنامه مقدار متغیر a قبل و بعد متد یکسان خواهد بود. اما گاهی لازم است مقدار متغیر a بعد از این که به عنوان آرگومان به متد فرستاده شد تغییر کند لذا از پارامتری به نام ref قبل از نام آرگومان و پارامتر استفاده می کنیم.
class Power
{
public void Pow(ref int i)
{
i= i*i;
}
}
class Program
{
static void Main(string[] args)
{
Power ob = new Power();
int a = 5;
Console.WriteLine("a before method" + a);
ob.Pow(ref a);
Console.WriteLine("a after method " + a);
}
}
{
public void Pow(ref int i)
{
i= i*i;
}
}
class Program
{
static void Main(string[] args)
{
Power ob = new Power();
int a = 5;
Console.WriteLine("a before method" + a);
ob.Pow(ref a);
Console.WriteLine("a after method " + a);
}
}
۹۶/۰۵/۲۹