سلام

امروز قصد داریم در مورد ref با شما صحبت کنیم . ref یکی از کلیدی ترین مفاهیم تابع است که باید حتما ان را به خوبی بیاموزید یکی از دلایلی که باعث شد تا من آموزش هایی را که کامل مشاهده کرده بودم و مجدد به ابتدا برگردم از صفر شروع کنم همین ref بود پس خوب آن را فرا بگیرید.

دانش آموزان گرامی ، هنرجویان ، فرهنگیان ، اهل سخن و اهل ادب این مطلب را کامل یاد بگیرید . اگر تاکنون مطالب را قبل را یاد نگرفته اید سراغ این قسمت نیایید.

برنامه زیر را ببینید پس از آن در موردش صحبت می کنیم

 

static void Main(string[] args)
        {
            int a, p=5;
            a = my(p);            
            Console.Write(p);
            Console.ReadKey();
        }
        
        public static int my(int s)
        {
            s = 4;
            return 645;
        }

 

در برنامه ی بالا مقدار p برابر با 5 است پس از آن مقدار p  به تابع my ارسال می شود و در نهایت مقدار p در متغییر s  ریخته می شود  و متغیر s برابر با 4 می شود و در نهایت پس از به اتمام رسیدن تابع my به تابع اصلی باز می گردیم  و پس از آن هنگام چاپ p مقدار 5 را خواهیم دید.

اگر از ref استفاده کنیم این مقدار تغییر خواهد کرد و در خروجی مقدار 4 را مشاهده خواهیم کرد.

 

static void Main(string[] args)
        {
            int a, p=5;
            a = my(ref p);            
            Console.Write(p);
            Console.ReadKey();
        }
        
        public static int my(ref int s)
        {
            s = 4;
            return 645;
        }