تغییر ایجاد کن

طبقه بندی موضوعی
يكشنبه, ۲۹ مرداد ۱۳۹۶، ۱۰:۱۱ ق.ظ

یک نکته درباره پارامتر ref

وقتی که یک value type به یک متد فرستاده می شود، مقدار آن پس از فراخوانی متد تغییری نمی کند. مانند مثال زیر:




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);




        }
    }


بعد از اجرای برنامه مقدار متغیر 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);

        }
    }

موافقین ۰ مخالفین ۰ ۹۶/۰۵/۲۹

نظرات  (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی