SajjadKhati (25-08-19)
سلام آقا سجاد
شما گفتی که void اگه بذاریم یعنی مقداری فراخونی نمی شه ولی طبق عکس زیر شما اینجا خودت گفتی که Method1 رو فراخونی می کنیم.
s1.jpg
SajjadKhati (25-08-19)
سلام گلپسر عزیز .
نمیدونم کجا همچین جمله ای گفتم ولی دقت کن که من گاها حواسم توی جمله بندی پرت میشه (این قدر حجم زمانی آموزش بالا بود و ان شاء ا... در آینده هم خواهد بود) اما مثلا یه کم جلوتر یا عقب تر اش را نگاه کنی ، جمله ی درست اش را میگم . کلا منظورم اینه که اگه همچین جمله ای گفته بودم ، جزء اشتباهات کلامی ام بود.
اگه اون جمله را گفتم ، عذرخواهی میکنم . منظورم این بود که اگه void بذاریم ، اون تابع یا متد ، مقداری را برنمیگردونه .
کلا برای اشتباهات کلامی ، کلِ اون قسمت را ببینی ، متوجه شون میشی که کجا اشتباهات کلامی بود.
دانلود فیلم آموزش برنامه نویسی Visual Studio C#.Net
فیلم آموزش کامل Autoplay Media Studio
وقتی انسان ، حیوان هست ، پس قیمت میتونی براش بذاری ولی وقتی انسان حَیّ مُتِاَلِّه هست که قیمت نداره ، بها داره. "دکتر حسن عباسی"
ravegoat (06-09-19), Speed Racer (26-08-19)
منظور من اینه که شما گفتی مقداری رو بر نمی گردونه ولی می بینیم که رشته داخل MessageBox.Show برگردونده می شه. اگه منظورت از مقدار عدد باشه که خوب من می تونم کاری کنم که MessageBox.Show عدد برگردونه بنابراین Method1 با اینکه void است ولی داره یک مقداری بر می گردونه.برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید ارسالی توسط SajjadKhati برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید
SajjadKhati (26-08-19)
برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید ارسالی توسط 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 گرفتم.
آخرین ویرایش توسط SajjadKhati در تاریخ 26-08-19 انجام شده است
دانلود فیلم آموزش برنامه نویسی Visual Studio C#.Net
فیلم آموزش کامل Autoplay Media Studio
وقتی انسان ، حیوان هست ، پس قیمت میتونی براش بذاری ولی وقتی انسان حَیّ مُتِاَلِّه هست که قیمت نداره ، بها داره. "دکتر حسن عباسی"
ravegoat (06-09-19), Speed Racer (26-08-19)
درودبرای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید ارسالی توسط SajjadKhati برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید
امکان داره بشه آرگومان ها رو در همون تابع بدیم و در متد آرگومانی نیاریم. این کد خطا میده. مشکلش کجاست
کد:private void button1_Click(object sender, EventArgs e){ Method1(); } void Method1(int myVariable1, int myVariable2) { myVariable1 = 10; myVariable2 = 20; int a = myVariable1 + myVariable2; MessageBox.Show(a.ToString()); }
SajjadKhati (29-08-19)
برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید ارسالی توسط Arshan935 برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید
متوجه ی منظورت نشدم.
ارورش بخاطر اینه که موقع تعریف متد Method1 ، دو تا پارامتر براش در نظر گرفتی اما موقعِ فراخونیِ این متد (درون رویداد button1_Click) ، هیچ مقداری به این دو تا ورودی ندادی.
دانلود فیلم آموزش برنامه نویسی Visual Studio C#.Net
فیلم آموزش کامل Autoplay Media Studio
وقتی انسان ، حیوان هست ، پس قیمت میتونی براش بذاری ولی وقتی انسان حَیّ مُتِاَلِّه هست که قیمت نداره ، بها داره. "دکتر حسن عباسی"
ravegoat (06-09-19), Speed Racer (01-09-19)
درود
یک متد ریاضی جدید خودم نوشتم ولی قدر مطلق داره. این علامت های قدر مطلق میذارم جواب نمیده. ( | | ) . چیکار باید کنم
مثلا می خوام بنویسم قدر مطلق a این چطوری نوشته می شه
آخرین ویرایش توسط Speed Racer در تاریخ 01-11-19 انجام شده است
SajjadKhati (01-11-19)
سلام بر گلپسر عزیز .برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید ارسالی توسط Arshan935 برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید
علامت قدر مطلق (همین علامت | | ای که نوشتی) ، در ریاضی ، معنا و مفهوم داره . موقع برنامه نویسی ، فقط محدود به این هستی که عملگرهای در اون زبان (در اینجا ، عملگرها در زبان سی شارپ) را استفاده کنی . یعنی ، فقط میتونی از عملگرهای (علامت ها) زیر ، استفاده کنی :
C# operators - C# reference | Microsoft Docs
یا
C# Operators: Arithmetic, Comparison, Logical and more.
اون علامت | که در ریاضی به عنوان قدر مطلق معنا داره ، توی سی شارپ ، به عنوان عملگر اور (یا همون عملگر OR) معنا داره که ربطی به قدر مطلق نداره .
برای عملیات ریاضی ، یا باید از متدهای آماده که در کلاس Math هست استفاده کنی :
Math Class (System) | Microsoft Docs
عملیات قدر مطلق را متد Abs در این کلاس انجام میده :
Math.Abs Method (System) | Microsoft Docs
اگه متدهای بیشتری نیاز داری ، یا باید در اینترنت ، دنبالش بگردی یا اینکه خودت بنویسی .
برای اینکه خودت همچین متد و کد (قدر مطلق) را بنویسی ، باید ببینی از چه دستورات اون زبان میتونی استفاده کنی . مثلا از طریق شرط if هم میشه نوشت . شاید یا عملگر هم باقی مانده هم بشه نوشت و ... .
در زیر ، با شرط if ، متد قدر مطلق را برات میذارم :
توضیحش اینکه میگه اگه عدد منفی بود ، همون عدد را دو برابر کن و ازش کم کن (چون عدد منفی هه ، کم کردیم که دو علامتِ عدد منفی ، تبدیل به علامت مثبت میشه و باعث میشه جمع کنه . همون قضیه ی منفی در منفی که میشه مثبت)کد:int Absulate(int digit) { if (digit < 0) digit = digit - (2 * digit); return digit; }
آخرین ویرایش توسط SajjadKhati در تاریخ 01-11-19 انجام شده است
دانلود فیلم آموزش برنامه نویسی Visual Studio C#.Net
فیلم آموزش کامل Autoplay Media Studio
وقتی انسان ، حیوان هست ، پس قیمت میتونی براش بذاری ولی وقتی انسان حَیّ مُتِاَلِّه هست که قیمت نداره ، بها داره. "دکتر حسن عباسی"
Speed Racer (01-11-19)
ممنونم استاد عزیزبرای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید ارسالی توسط SajjadKhati برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید
همین Math.Abs استفاده کردم که آسونتر بود و درست شد.
SajjadKhati (01-11-19)
دورود
س1) الان آخرین خطی که اجرا می شه MessageBox هه یا Method6
erwa.jpg
س2) این IntoMethod اصولش اینه بالای متد باشه (اون متد داخلی) یا پایین متد هر چند فرقی نداره. اصولش باید به چه صورت باشه
س3) اگه نوع متد استراکت باشه هم بدنه اون درون هیپ قرار می گیره یا فقط وقتی که نوعش کلاس باشه
آخرین ویرایش توسط Speed Racer در تاریخ 05-11-19 انجام شده است
SajjadKhati (06-11-19)
2 کاربر در حال مشاهده این موضوع. (0 عضو و 2 میهمان)
Bookmarks