AMD>INTEL (08-02-16), ™Ali (12-07-09), SajjadKhati (07-02-16), خبات کریمی (08-02-16)
دوستان رشته ی بنده الکترونیک نیست. اگر اشتباهی در کار من مشاهده کردید، به بزرگواری خودتون ببخشید.
+makintash ، دوست عزیز از تذکرتون سپاس گزارم.
با مشورت هایی که انجام شد، احتمال دادیم مشکل از نحوه ی اتصال باشه.
تصویر زیر یه شکل اتصال رو بیان می کنه:
برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید
چیز بیش تری دستم رسید، در اختیارتون قرار می دم.
موفق باشید
آرمینبرای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید
آخرین ویرایش توسط ravegoat در تاریخ 13-09-09 انجام شده است
'چو ایران نباشد، تن من مباد
Dim Armin As Iranian
If Iran.Enabled = False Then Armin.Enabled = False
AMD>INTEL (08-02-16), ™Ali (12-07-09), SajjadKhati (07-02-16), خبات کریمی (08-02-16)
سلام
این کد چرا ارور میده؟ :
کد:int x; MessageBox.Show(x.ToString());
دانلود فیلم آموزش برنامه نویسی Visual Studio C#.Net
فیلم آموزش کامل Autoplay Media Studio
وقتی انسان ، حیوان هست ، پس قیمت میتونی براش بذاری ولی وقتی انسان حَیّ مُتِاَلِّه هست که قیمت نداره ، بها داره. "دکتر حسن عباسی"
سلام!برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید ارسالی توسط SajjadKhati برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید
مقداری برای x تعریف نشده و در سی شارپ برخلاف زبان های مفسری اگر متغیری مقدار دهی نشه، مقدار پیش فرضی برای اون در نظر گرفته نمیشه.
'چو ایران نباشد، تن من مباد
Dim Armin As Iranian
If Iran.Enabled = False Then Armin.Enabled = False
AMD>INTEL (08-02-16), nima_hl (08-02-16), SajjadKhati (08-02-16)
ممنون استاد آرمینبرای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید ارسالی توسط ravegoat برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید
ولی من تو آموزشی که از یه شرکت دارم ، بصورت تئوری گفت که مقدار پیش فرض داره اگه ندیم اما عملی انجام نداد
دانلود فیلم آموزش برنامه نویسی Visual Studio C#.Net
فیلم آموزش کامل Autoplay Media Studio
وقتی انسان ، حیوان هست ، پس قیمت میتونی براش بذاری ولی وقتی انسان حَیّ مُتِاَلِّه هست که قیمت نداره ، بها داره. "دکتر حسن عباسی"
AMD>INTEL (08-02-16)
سلام
آقا آرمین مبحث چند ریختی با توضیح ساده رو کجا میتونم بخونم؟ این کسی که آموزشش رو میبینم ، همه چی رو خوب و ساده توضیح میده . چند ریختی رو هم همینطور ولی روی چند ریختی زیاد تمرکز نکرد
این چیزایی که از چند ریختی میگم ، ببینین درسته یا چیزای دیگه ای هم هست؟ :
چندریختی یعنی تابعی در کلاس پدر رو میشه در کلاس فرزند ، تغییر داد که میشه همون از یه تابع ، به چند شکل و ریخت استفاده کرد . با استفاده از کلمه virtual در کلاس پدر میشه به تابع این قابلیت رو اضافه کرد . با استفاده از کلمه override در کلاس فرزند ، میشه تابع پدر رو تغییر داد به دلخواه
یا به عبارتی تابع چند ریختی فقط توی کلاس پدر با کلمه ی virtual تعریف میشه . نه هیچ کلاس دیگه ای و تغییر این تابع فقط توی کلاس فرزند با کلمه ی override انجام میشه نه هیچ کلاس دیگه ای
در کلاس فرزند اگه بخوایم تابع چند ریختی رو تغییر بدیم ، چون به نوعی تابع مجدد تعریف باید بشه و تابع هم فقط در سطح (داخل) کلاس تعریف میشه ، پس برای تغییر تابع چند ریختی یا در واقع باید کلمه ی override را داخل و در سطح کلاس بنویسیم نه در داخل توابع یا متد دیگه و ... و بعدش هم هر جور خواستیم بدنه و خروجی شو تغییر میدیم
چون تابع چند ریختی باید از کلاس فرزند در دسترس باشه تا لود شه ، پس باید سطح دسترسی این نوع تابع در کلاس پدر که تعریف کردیم ، public باشه
برای فراخونی این تابع چند ریختی شده یعنی تغییر داده شده ، که داخل کلاس فرزند تعریف کردیم ، مثل حالت عادی ، با ایجاد شی از کلاس های دیگه ، در دسترسه
--------------
خسته میشین بخونین برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید
نکته ی دیگه ای هست که فکر کنم باشه یا فقط همینه؟
دانلود فیلم آموزش برنامه نویسی Visual Studio C#.Net
فیلم آموزش کامل Autoplay Media Studio
وقتی انسان ، حیوان هست ، پس قیمت میتونی براش بذاری ولی وقتی انسان حَیّ مُتِاَلِّه هست که قیمت نداره ، بها داره. "دکتر حسن عباسی"
سلام!برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید ارسالی توسط SajjadKhati برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید
سجاد جان این توضیحاتی که فرمودی درسته و برای تکمیلش می تونی مطلب زیر رو هم مطالعه کنی:
Polymorphism in .NET - CodeProject
ولی چند ریختی فقط همین نیستش و مفاهیم abstract، delegate و operator رو هم در بر می گیره:
مفهوم چندریختی در زبان سی شارپ #C
C# - Polymorphism
در مورد Delegate هم این مطلب شاید مفید باشه:
Delegate راهي براي اجراي چندين تابع مختلف است كه ورودي مشابهي دارند. فرضا" اگر سه تابع داشته باشيم كه عمليات هاي رياضي مختلفي رو روي يك عدد مشابه اجرا مي كنند؛ به جاي اجراي تك تك اون سه تابع با ورودي يكسان، مي تونيم سه تابع رو در يك Delegate تعريف كنيم و سپس با يك بار دادن اون عدد به Delegate ايجاد شده، Delegate خودش عدد ورودي رو به سه تابع داخليش ميده و نتايج رو بر مي گردونه. حال اگر يكي از اين سه تابع به جاي يه ورودي به دو ورودي نياز داشته باشه ديگه نميشه از اين روش استفاده كرد. در اين جا به اصطلاح گفته ميشه Delegate Signature بين سه تابع مطابقت نداره (عدم تشابه در پارامتر هاي ورودي و يا مقادير برگشتي توابع). در مبحث چند ريسماني هم وقتي قصد داريم تابعي رو توسط يك Thread كه يك متد Delegate محسوب ميشه اجرا كنيم ممكنه با مشكل عدم تطابق Delegate Signature رو به رو بشيم.
در حالت كلي اگر قصد داشته باشيم تابعي رو توسط يك Thread مجزا اجرا كنيم و اون تابع داراي پارامتر ورودي باشه جهت هماهنگ كردن Delegate Signature، بايد از عبارت delegate قبل از معرفي تابع استفاده كنيم. در دستور شما هم تابع Sort چهار ورودي داره كه باعث ميشه از اين قاعده مستثني نباشه. لازم به ذكره در نسخه هاي جديد سي شارپ اين هماهنگي با استفاده از عبارت هاي لاندا (Lambda Expression) هم امكان پذيره.
آخرین ویرایش توسط ravegoat در تاریخ 27-02-16 انجام شده است علت: افزودن Delegate
'چو ایران نباشد، تن من مباد
Dim Armin As Iranian
If Iran.Enabled = False Then Armin.Enabled = False
AMD>INTEL (27-02-16), M A H R A D (27-02-16), SajjadKhati (27-02-16)
سلامبرای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید ارسالی توسط ravegoat برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید
ممنون آقا آرمین برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید
من از یکی سئوال میپرسم که الان نیست که جواب بده.
زیادم هست سئوالاتم و نیاز هم دارم
همونطور که میدونی آقا آرمین توی سی شارپ مبتدی هستم و تا مبحث ارث بری رو و حالا نمیدونم کامل میدونم از این مبحث یا نه ولی الان توی مبحث چند ریختی گیر کردم
مبحث تعریف تابع virtual و تغییر بدنه اش با override رو انگار یه چیزایی متوجه شدم ولی در مبحث کلی چند ریختی و مخصوصا کلمه کلیدی new و new virtual بجای override گیر کردم
در کل اطلاعات تیکه پاره از چند جا درباره مبحث چند ریختی گرفتم که الان باعث گیج شدنم شد مخصوصا در کلمه کلیدی new و new virtual اش
این سئوالاتی که در زیر مطرح کردم رو از اون نفر پرسیدم که اگه وقت کنی جواب بدی اوستا آرمین (البته هر چه سریعتر بهتربرای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید ) ممنون میشم :
ببخشید آقا علی کنجکاو شدم بدونم اون کد خط بالا چیه دقیقا؟
اگه سطح دسترسی public که اولش نوشتین رو برداریم میشه همون ساخت شی یعنی اگه این جوری باشه :
کد:Class3 a = new Class3();
ولی تا جایی که میدونم موقع تعریف شی ، سطح دسترسی براش نمیزارن
چیه دقیقا این؟
--------------
بعد یه سئوال دیگه دارم اینکه داخل یک کلاس میشه کلاس دیگه ای تعریف کرد و بعد داخل اون متد و اعضاء تعریف کرد؟ (منظورم تعریف یک کلاس کنار کلاس دیگه نیست. منظورم داخل یک کلاس هست)
چجوری میشه تو کد زیر ، از کلاس داخلی شی درست کرد یا متد meth را فراخونی کرد؟ :
فضای نام تو در تو رو فهمیدم که باید فضای نام ها را با استفاده از using و نوشتن نام فضای نام و بعد با گذاشتن نقطه و بعد نوشتن فضای نام داخلی ، ملحق کنیمکد:namespace MultiClassTest { class MyClass1 { public class MyClass2 { public string x = "1"; public string meth() { string y = "internal class"; return y; } } } }
-------------------------------------
برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید ارسالی توسط the_king برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنیدبرای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید ارسالی توسط the_king برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید
منظورتون اینه که اگه A کلاس پدربزرگ و B پدر و C فرزند باشه و مثلا متد Test در کلاس پدربزرگ یعنی کلاس A بصورت virtual تعریف شده باشه و بعد در کلاس B یه override از متد Test بسازیم و این متد رو هر جور دلمون خواست تغییر بدیم و بعد حالا میتونیم توی کلاس C متد Test در کلاس A یعنی کلاس پدربزرگ رو دوباره override کنیم؟!
ولی من اینو تست کردم دیدم وقتی میخوایم یه متد رو override کنیم ، فقط آخرین متدی که override کردیم در آخرین کلاس در دسترسمون هست و فقط اونو میتونیم تغییر بدیم و متدهای دیگه در کلاس های قبلی اش که override کردیم از دسترسمون خارج میشه یعنی وقتی در کلاس B که متد رو یه بار override کردیم (چون در کلاس A بصورت virtual تعریف کردیم) ، در دفعه ی بعد که میخوایم override تعریف کنیم یعنی وقتی در کلاس C بصورت override میخوایم بنویسیم ، فقط متد Test ای که در کلاس B (بصورت override) تعریف کردیم در دسترسمون هست و متد Test در کلاس A از دسترس مون خارج میشه
برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید ارسالی توسط the_king برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنیدبرای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید ارسالی توسط the_king برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید
من این تیکه ها رو متوجه نشدم
وقتی در کلاس پدربزرگ که متدم رو public و virtual تعریف کردم و بعد در کلاس پدر بصورت private new تعریف کردم ، از متد فرزند هم به متد مورد نظر در کلاس پدربزرگ دسترسی داشتم یعنی فرزندان ارتباط شون رو با متد در کلاس پدربزرگ از دست ندادن
------------------------------------------
یه سئوال دیگه اینکه وقتی توی کلاس پدر ، متدی با قابلیت virtual تعریف میکنم توی هیچ متدی از کلاس پسر با کلمه کلیدی this در دسترس نیست و فقط باید شی براش درست کنم تا در دسترس قرار بگیره . سطح دسترسی شم public هه
مگه کلمه کلیدی this هم کلاس خودی و هم کلاس های اجدادش رو اون عضوهایی که قابلیت دسترسی دارن (بجز public static) رو در دسترس مون قرار نمیده؟
آخرین ویرایش توسط SajjadKhati در تاریخ 07-03-16 انجام شده است
دانلود فیلم آموزش برنامه نویسی Visual Studio C#.Net
فیلم آموزش کامل Autoplay Media Studio
وقتی انسان ، حیوان هست ، پس قیمت میتونی براش بذاری ولی وقتی انسان حَیّ مُتِاَلِّه هست که قیمت نداره ، بها داره. "دکتر حسن عباسی"
سلام
آقا نوع داده ای object چیه؟
تا حالا توضیحاتی که شنیدم و قبل از آشنایی با نوع داده ای var فکر میکردم که نوع داده ای object همون کار var را میکنه
ولی الان فهمیدم var همون چیز مورد نظرم بود یعنی اتوماتیک نوع متغییر را تشخیص میده و خیلی به درد عملیات ریاضی و جاهایی که انواع مختلف عددهای رند و غیر رند با هم بکار میره میخوره و کار آدمو راحت میکنه . نوع متغییر var هم موقع نوشتن کد مشخص میشه ولی object و dynamic انگار موقع اجرا برنامه مشخص میشن
پس نوع داده ای object به درد کجا میخوره؟
انگار نوع dynamic هم داریم. این باز چیه؟ برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید چن تا!!! فرقشون با هم چی ان؟
--------------------
بعد اینکه فایل با پسوند mp3 رو نمیشه بدون ابزار windows media player توی #C پلی کرد؟
----------------------------------
یه سئوال دیگه
چرا وقتی یه کنترل (مثلا button) به پروژه اضافه میکنیم ، ویژال استودیو اتوماتیک با نام همون کنترل ، برامون از کلاس اش یه شی (instance) ایجاد میکنه و ما از اون به بعد فقط کافیه که اعضاشو مثل پروپرتی ها و متدها و متغییرها و ... برای استفاده و فراخونی نام ببریم (که مشخصه با نقطه جدا میشن) ولی برای فراخونی یک فرم جدید باید خودمون یه شی از کلاس اش ایجاد کنیم؟
چرا این فرق هست؟ همه مگه کنترل نیستن؟
--------------------------------------------------
سئوال دیگه اینکه چجوری میشه توی یک رویدادی کدی بنویسیم که وقتی اون رویداد اتفاق میافته ، اتوماتیک یه دکمه از کیبرد رو برامون فشار بده (نه اینکه کاربر خودش فشار بده) مثلا دکمه F1 یا دکمه Delete و ... رو؟
--------------------------------------------------این کلاس keys در رویدادهای کیبرد دقیقا چیه؟ من کد زیر رو وقتی در رویداد KeyDown (فرم) مینویسم ، هر دکمه ای رو میزنم بهم پیام E رو میده. چرا؟ :
مگه نباید فقط وقتی دکمه E را میزنم فقط عمل کنه؟کد:string y = Convert.ToString(Keys.E); MessageBox.Show(y);
------------------------------------------------------
و اینکه من در کد زیر که توی رویداد KeyDown گذاشتم ، میخوام وقتی کلیدهای ترکیبی Ctrl+E رو زدم ، بهم پیام بده ولی نمیده . علت اشتباهم کجاست؟ :
کد:private void Form1_KeyDown(object sender, KeyEventArgs e) { if (e.Control==true && e.KeyData==Keys.E) { MessageBox.Show(e.Control.ToString()+" + "+e.KeyData.ToString()+" pressed"); } }
آخرین ویرایش توسط SajjadKhati در تاریخ 22-03-16 انجام شده است
دانلود فیلم آموزش برنامه نویسی Visual Studio C#.Net
فیلم آموزش کامل Autoplay Media Studio
وقتی انسان ، حیوان هست ، پس قیمت میتونی براش بذاری ولی وقتی انسان حَیّ مُتِاَلِّه هست که قیمت نداره ، بها داره. "دکتر حسن عباسی"
|
سلام!
1- تفاوت Var با Object و Dynamic:
Difference between Object, Dynamic and Var - CodeProject
https://blogs.msdn.microsoft.com/csh...ject-keywords/
Var vs Dynamic Keywords in C#
2-MP3 بدون Windows Media Player:
اگر منظورت اینه که کنترلر WMP در فرم معلوم نشه، بله امکان پذیره:
https://msdn.microsoft.com/en-us/lib...=vs.85%29.aspx
اما اگر میخوای بدون استفاده از هیچ کتابخونه ای این کار رو بکنی، غیر ممکن نیست ولی سخته.
3-دکمه و فرم همه مگه کنترل نیستن؟
سجاد جان کلمه کلیدی this برای همین کار هستش! مثلا button1.Text برای دکمه معادلش برای فرم میشه this.Text (دیگه نیازی به ساخت شی نیستش).
4-فشرده شدن اتوماتیک یه دکمه از صفحه کلید:
با دستور SendKeys این کار امکان پذیره.
5-Keys در سی شارپ:
Keys در واقع یه Enum از دکمه های صفحه کلید هستش. در رویداد KeyDown اگر شما از شرط استفاده نکنی، هر کلیدی که پایین نگه داشته باشه رویداد رخ میده و مقدار کارکتر کلید E به نمایش در میاد.
6-فشردن کلید ترکیبی:
شرطت باید به این شکل اصلاح بشه:
کد:if (e.KeyCode == Keys.E || e.KeyCode == Keys.Control)
آخرین ویرایش توسط ravegoat در تاریخ 04-04-16 انجام شده است علت: اصلاح پیوند
'چو ایران نباشد، تن من مباد
Dim Armin As Iranian
If Iran.Enabled = False Then Armin.Enabled = False
AMD>INTEL (04-04-16), M A H R A D (04-04-16), M3RS4D 50062 (04-04-16), SajjadKhati (20-01-17)
سلام
چرا عضو protected از یک کلاس ، فقط وقتی درون کلاس فرزند ، از همون کلاس فرزند شی بسازیم در دسترس هه؟ یعنی به چه دلیل وقتی از کلاس فرزند ، شی ای از کلاس پدر بسازیم ، اعضای protected تعریف شده از کلاس پدر در دسترس نیست؟
دانلود فیلم آموزش برنامه نویسی Visual Studio C#.Net
فیلم آموزش کامل Autoplay Media Studio
وقتی انسان ، حیوان هست ، پس قیمت میتونی براش بذاری ولی وقتی انسان حَیّ مُتِاَلِّه هست که قیمت نداره ، بها داره. "دکتر حسن عباسی"
DOOM999 (20-01-17)
1 کاربر در حال مشاهده این موضوع. (0 عضو و 1 میهمان)
Bookmarks