برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید ارسالی توسط Arshan935 برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید
سلامی مجدد
نه.
اصلا منظور از برگردوندن تابع ، این چیزی نیست که فکر میکنی.
نوشتنِ یک مقدار داخل تابعِ MessageBox.Show که برابر نیست با برگردوندن .
برگردوندن به این معنا هست که وقتی اسم تابعی (یا حالا اسم پروپرتی یا متغییر و ...) را که نوشتی ، بتونی اون تابع را داخلِ یک متغییر ذخیره کنی و بعدا استفاده کنی .
الان شما میتونی در کدی که در پست اول دادی ، درونِ رویداد button58_Click ، همچین کد زیر را بنویسی ؟ :
کد:string a = Method1();
یعنی کلا این جوری بنویسی (بجای نوع string در کد بالا ، هر نوعِ دیگه ای خواستی ، بده) :
نه نمیشه . چون تابع Method1 ، چیزی را برنمیگردونه .کد:private void button58_Click(object sender, EventArgs e) { string a = Method1(); } private void Method1() { MessageBox.Show("داخل تابع Mrthod1"); }
اصلا کاری به درونِ تابع و کدهایی که داخلِ تابعِ Method1 نوشته شده نداشته باش . فقط ببین که وقتی نامِ اون عضو (در اینجا نام تابع) را فراخونی میکنی ، اولا آیا میتونی توی متغییری ذخیره کنی یا نه و دوما اگه میشه ، توی چه نوع متغییری میتونی ذخیره کنی. این مفهوم ، معنایِ برگردوندنِ تابع هست.
اما در کد زیر ، اون تابع ، در متغییر ذخیره میشه و مشکلی نداره :
کد:private void button58_Click(object sender, EventArgs e) { string a = Method1(); } private string Method1() { MessageBox.Show("داخل تابع Mrthod1"); return "salam"; }
به این معنا که وقتی نامِ تابعِ Method1 را فراخونی کردم (صرف نظر از اینکه داخلِ این متد ، چه کدی نوشتم) ، تونستم در متغییر a (درون رویداد button58_Click) ذخیره کنم. چون موقعِ تعریفِ متدِ Method1 ، نوعِ بازگشتی اش را از نوع string گرفتم.







Bookmarks