💻 تفاوت dotnet script و C# REPL چیه؟
dotnet script یه اسکریپترانر C#ـه. یعنی میتونی یه فایل .csx رو مستقیم اجرا کنی. برای تست سریع کدها یا اتوماسیون کارهای کوچیک خوبه.
C# REPL یه محیط تعاملیه. خط به خط کد میزنی و نتیجه رو همون لحظه میبینی. برای یادگیری، آزمایش ایدهها و دیباگ سریع خیلی کاربردیه. 🧪
در واقع، اولی فایل رو اجرا میکنه، دومی خط به خط. ✅
https://t.me/csharp7
dotnet script یه اسکریپترانر C#ـه. یعنی میتونی یه فایل .csx رو مستقیم اجرا کنی. برای تست سریع کدها یا اتوماسیون کارهای کوچیک خوبه.
C# REPL یه محیط تعاملیه. خط به خط کد میزنی و نتیجه رو همون لحظه میبینی. برای یادگیری، آزمایش ایدهها و دیباگ سریع خیلی کاربردیه. 🧪
در واقع، اولی فایل رو اجرا میکنه، دومی خط به خط. ✅
https://t.me/csharp7
در C#، عملگرهای رابطهای برای مقایسه مقادیر انواع دادههای مختلف استفاده میشوند. این عملگرها نتیجهای بولی (True یا False) برمیگردانند.
- عملگرهای مقایسهای:
-
-
-
-
-
-
مثال مقایسه انواع داده:
اعداد صحیح (int):
```csharp
int a = 10;
int b = 5;
bool isEqual = (a == b); // False
bool isGreater = (a > b); // True
```
اعداد اعشاری (double):
رشتهها (string):
مقایسه رشتهها حساس به بزرگی و کوچکی حروف است.
```csharp
string name1 = "Ali";
string name2 = "ali";
bool areSame = (name1 == name2); // False (به دلیل تفاوت در بزرگی و کوچکی حروف)
```
برای مقایسه بدون حساسیت به بزرگی و کوچکی حروف، از متدهایی مانند `Equals` با پارامتر `StringComparison.OrdinalIgnoreCase` استفاده میشود:
```csharp
bool areSameIgnoreCase = name1.Equals(name2, StringComparison.OrdinalIgnoreCase); // True
```
بولی (bool):
این عملگرها پایه و اساس ساختارهای کنترلی مانند
https://t.me/csharp7
- عملگرهای مقایسهای:
-
== (برابر است با) -
!= (برابر نیست با) -
> (بزرگتر از) -
< (کوچکتر از) -
>= (بزرگتر یا مساوی) -
<= (کوچکتر یا مساوی)مثال مقایسه انواع داده:
اعداد صحیح (int):
```csharp
int a = 10;
int b = 5;
bool isEqual = (a == b); // False
bool isGreater = (a > b); // True
```
اعداد اعشاری (double):
double x = 10.5;
double y = 10.5;
bool isNotEqual = (x != y); // False
رشتهها (string):
مقایسه رشتهها حساس به بزرگی و کوچکی حروف است.
```csharp
string name1 = "Ali";
string name2 = "ali";
bool areSame = (name1 == name2); // False (به دلیل تفاوت در بزرگی و کوچکی حروف)
```
برای مقایسه بدون حساسیت به بزرگی و کوچکی حروف، از متدهایی مانند `Equals` با پارامتر `StringComparison.OrdinalIgnoreCase` استفاده میشود:
```csharp
bool areSameIgnoreCase = name1.Equals(name2, StringComparison.OrdinalIgnoreCase); // True
```
بولی (bool):
bool status1 = true;
bool status2 = false;
bool isStatus1True = (status1 == true); // True
bool areStatusesDifferent = (status1 != status2); // True
این عملگرها پایه و اساس ساختارهای کنترلی مانند
if و حلقهها را تشکیل میدهند و به برنامه اجازه میدهند تا بر اساس شرایط مختلف، مسیر اجرای خود را تغییر دهد. 💡📊https://t.me/csharp7
Telegram
آموزش C# و .Net
تعرفه تبلیغات :
https://t.me/+w-o6dHW5O31jMWNk
آیدی ادمین:
@ma_limbs
https://t.me/+w-o6dHW5O31jMWNk
آیدی ادمین:
@ma_limbs
🔵 با عضویت در لیست تلگرامی جامع آموزش زبان زیر عضو بی نظیرترین و کامل ترین مجموعه آموزش زبان انگلیسی تلگرامی شوید:
🟢 پادکست، کوییز، گرامر، آیلتس، تافل، ویدیو، آموزش زبان به کودکان، اصطلاحات انگلیسی، زبان کنکور و ... :
https://t.me/addlist/hK74E7joz0ZiOGY0
https://t.me/addlist/hK74E7joz0ZiOGY0
https://t.me/addlist/hK74E7joz0ZiOGY0
🟢 پادکست، کوییز، گرامر، آیلتس، تافل، ویدیو، آموزش زبان به کودکان، اصطلاحات انگلیسی، زبان کنکور و ... :
https://t.me/addlist/hK74E7joz0ZiOGY0
https://t.me/addlist/hK74E7joz0ZiOGY0
https://t.me/addlist/hK74E7joz0ZiOGY0
Telegram
زبان
You’ve been invited to add the folder “زبان”, which includes 50 chats.
C# به شما اجازه میده modifier ها رو در Lambda Expression ها هم استفاده کنید.
```csharp
Func<ref int, int> foo = ref (ref int x) => { x = 1; return x; };
```
میتونید از `ref`، `in`، `out` و `params` استفاده کنید. ⚙️ اینطوری انعطافپذیری کدتون بیشتر میشه. 💫 فقط یادتون باشه که signature تابع delegate باید با Lambda Expression یکی باشه. ➕
https://t.me/csharp7
```csharp
Func<ref int, int> foo = ref (ref int x) => { x = 1; return x; };
```
میتونید از `ref`، `in`، `out` و `params` استفاده کنید. ⚙️ اینطوری انعطافپذیری کدتون بیشتر میشه. 💫 فقط یادتون باشه که signature تابع delegate باید با Lambda Expression یکی باشه. ➕
https://t.me/csharp7
💡 نکته #NoSQL
🟣 موضوع : Benchmarking و Performance Testing
✨ نکته :
یادتون باشه که Performance Testing یک فرایند مداوم هستش. همیشه باید تست کنید و بهبود بدید! 🔥🔄
ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
لطفا ما رو به دیگران هم معرفی کنید...
آدرس کانال اصلی :
https://t.me/Tu_24
آدرس وبسایت:
https://Tutorial24.ir
🟣 موضوع : Benchmarking و Performance Testing
✨ نکته :
یادتون باشه که Performance Testing یک فرایند مداوم هستش. همیشه باید تست کنید و بهبود بدید! 🔥🔄
ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
لطفا ما رو به دیگران هم معرفی کنید...
آدرس کانال اصلی :
https://t.me/Tu_24
آدرس وبسایت:
https://Tutorial24.ir
Telegram
آموزش کامپیوتر و برنامه نویسی tu24
* برنامه نویسی
* علوم کامپیوتر
* ریاضیات مورد نیاز علوم کامپیوتر
* هوش مصنوعی
* علوم داده
* داده کاوی
* بیگ دیتا
* پیشنهادات، تبلیغات و تبادل و ... : @ma_limbs
* تعرفه تبلیغات:
https://t.me/+w-o6dHW5O31jMWNk
* علوم کامپیوتر
* ریاضیات مورد نیاز علوم کامپیوتر
* هوش مصنوعی
* علوم داده
* داده کاوی
* بیگ دیتا
* پیشنهادات، تبلیغات و تبادل و ... : @ma_limbs
* تعرفه تبلیغات:
https://t.me/+w-o6dHW5O31jMWNk
🔵 با عضویت در لیست تلگرامی جامع آموزش زبان زیر عضو بی نظیرترین و کامل ترین مجموعه آموزش زبان انگلیسی تلگرامی شوید:
🟢 پادکست، کوییز، گرامر، آیلتس، تافل، ویدیو، آموزش زبان به کودکان، اصطلاحات انگلیسی، زبان کنکور و ... :
https://t.me/addlist/hK74E7joz0ZiOGY0
https://t.me/addlist/hK74E7joz0ZiOGY0
https://t.me/addlist/hK74E7joz0ZiOGY0
🟢 پادکست، کوییز، گرامر، آیلتس، تافل، ویدیو، آموزش زبان به کودکان، اصطلاحات انگلیسی، زبان کنکور و ... :
https://t.me/addlist/hK74E7joz0ZiOGY0
https://t.me/addlist/hK74E7joz0ZiOGY0
https://t.me/addlist/hK74E7joz0ZiOGY0
Telegram
زبان
You’ve been invited to add the folder “زبان”, which includes 50 chats.
This media is not supported in your browser
VIEW IN TELEGRAM
🔵 Eclipse - Reopen Project
🟢 کیفیت : متوسط
🔴 توجه کنید این ویدیو با کیفیت متوسط می باشد. طی روزهای آینده نسخه های متفاوت با کیفیت بالاتر یا کم حجم تر از این نسخه در کانال قرار داده خواهد شد.
🟣 Eclipse
🟢 زبان آموزش: انگلیسی
🟣 دوره آموزش Eclipse
ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
لطفا ما رو به دیگران هم معرفی کنید...
آدرس کانال اصلی :
https://t.me/Tu_24
آدرس وبسایت:
https://Tutorial24.ir
🟢 کیفیت : متوسط
🔴 توجه کنید این ویدیو با کیفیت متوسط می باشد. طی روزهای آینده نسخه های متفاوت با کیفیت بالاتر یا کم حجم تر از این نسخه در کانال قرار داده خواهد شد.
🟣 Eclipse
🟢 زبان آموزش: انگلیسی
🟣 دوره آموزش Eclipse
ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
لطفا ما رو به دیگران هم معرفی کنید...
آدرس کانال اصلی :
https://t.me/Tu_24
آدرس وبسایت:
https://Tutorial24.ir
Endpoint metadata در C# به شما اجازه میده اطلاعات دلخواه خودتون رو به endpointها اضافه کنید. 🏷️
این اطلاعات میتونه برای مستندسازی API، اعتبارسنجی درخواستها، یا هر منطق سفارشی دیگهای استفاده بشه. ⚙️
کافیه یک کلاس بسازید و attribute مربوطه رو بالای endpoint مورد نظر قرار بدید. به این شکل، متادیتا به صورت خودکار در دسترس خواهد بود. 🔑
https://t.me/csharp7
این اطلاعات میتونه برای مستندسازی API، اعتبارسنجی درخواستها، یا هر منطق سفارشی دیگهای استفاده بشه. ⚙️
کافیه یک کلاس بسازید و attribute مربوطه رو بالای endpoint مورد نظر قرار بدید. به این شکل، متادیتا به صورت خودکار در دسترس خواهد بود. 🔑
https://t.me/csharp7
Telegram
آموزش C# و .Net
تعرفه تبلیغات :
https://t.me/+w-o6dHW5O31jMWNk
آیدی ادمین:
@ma_limbs
https://t.me/+w-o6dHW5O31jMWNk
آیدی ادمین:
@ma_limbs
This media is not supported in your browser
VIEW IN TELEGRAM
🔵 Eclipse - Installation
🟢 کیفیت : متوسط
🔴 توجه کنید این ویدیو با کیفیت متوسط می باشد. طی روزهای آینده نسخه های متفاوت با کیفیت بالاتر یا کم حجم تر از این نسخه در کانال قرار داده خواهد شد.
🟣 Eclipse
🟢 زبان آموزش: انگلیسی
🟣 دوره آموزش Eclipse
ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
لطفا ما رو به دیگران هم معرفی کنید...
آدرس کانال اصلی :
https://t.me/Tu_24
آدرس وبسایت:
https://Tutorial24.ir
🟢 کیفیت : متوسط
🔴 توجه کنید این ویدیو با کیفیت متوسط می باشد. طی روزهای آینده نسخه های متفاوت با کیفیت بالاتر یا کم حجم تر از این نسخه در کانال قرار داده خواهد شد.
🟣 Eclipse
🟢 زبان آموزش: انگلیسی
🟣 دوره آموزش Eclipse
ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
لطفا ما رو به دیگران هم معرفی کنید...
آدرس کانال اصلی :
https://t.me/Tu_24
آدرس وبسایت:
https://Tutorial24.ir
💡 نکته #MySQL
🟣 موضوع : کار با انواع JOIN در MySQL به صورت عملی
📖 سرفصل : خطرات و مشکلات کارایی در استفاده نادرست از CROSS JOIN
✨ رفیق، یادت باشه CROSS JOIN بیحساب و کتاب بزنی، قشنگ کل دیتابیست منفجر میشه!🔥 حواست باشه شرط WHERE رو درست بذاری.
✨ اگه performance برات مهمه، الکی CROSS JOIN نزن! 💡 اول ببین راه بهتری مثل JOIN معمولی داری یا نه. CROSS JOIN فقط وقتی لازمه که واقعاً همه حالتها رو بخوای.
✨ فکر کن CROSS JOIN مثل اینه که همه رو با همه جفت کنی! اگه جدولهات بزرگ باشن، نتیجه خیلی سنگین میشه. سنگینتر از چیزی که فکرشو میکنی!
✨ وقتی CROSS JOIN میزنی، حتماً حواست به حجم دیتا باشه. ینی چی؟ ینی اول جدول کوچیکتر رو بذار که زودتر فیلتر بشه.
✨ اگه میخوای یه گزارش پیچیده دربیاری و مجبور شدی CROSS JOIN بزنی، سعی کن فیلترهای دیگه رو قبلش اعمال کنی. اینجوری حجم دیتا کمتر میشه و سرعتت میره بالا.✨
✨ یه وقتایی CROSS JOIN رو میشه با یه زیرپرس و جو جایگزین کرد. امتحانش کن! شاید جواب بده و سرعتت بهتر بشه.
✨ اگه مشکل performance داری، اول ببین ایندکسهات درسته یا نه. شاید مشکل از جای دیگهست و الکی داری CROSS JOIN رو مقصر میدونی.
✨ قبل از اینکه کدت رو deploy کنی، حتماً CROSS JOINت رو با یه دیتای تستی بزرگتر امتحان کن. اینجوری مطمئن میشی که تو production به مشکل نمیخوری.
✨ از ابزارهای monitoring استفاده کن تا ببینی queryهات چقدر resource مصرف میکنن. اینجوری میفهمی CROSS JOINت داره چه بلایی سر سرورت میاره.
✨ اگه CROSS JOINت خیلی کنده، به جای یه query بزرگ، تیکهتیکهش کن و نتیجهها رو تو یه جدول temporary ذخیره کن. اینجوری شاید manageableتر بشه.
ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
لطفا ما رو به دیگران هم معرفی کنید...
آدرس کانال اصلی :
https://t.me/Tu_24
آدرس وبسایت:
https://Tutorial24.ir
🟣 موضوع : کار با انواع JOIN در MySQL به صورت عملی
📖 سرفصل : خطرات و مشکلات کارایی در استفاده نادرست از CROSS JOIN
✨ رفیق، یادت باشه CROSS JOIN بیحساب و کتاب بزنی، قشنگ کل دیتابیست منفجر میشه!🔥 حواست باشه شرط WHERE رو درست بذاری.
✨ اگه performance برات مهمه، الکی CROSS JOIN نزن! 💡 اول ببین راه بهتری مثل JOIN معمولی داری یا نه. CROSS JOIN فقط وقتی لازمه که واقعاً همه حالتها رو بخوای.
✨ فکر کن CROSS JOIN مثل اینه که همه رو با همه جفت کنی! اگه جدولهات بزرگ باشن، نتیجه خیلی سنگین میشه. سنگینتر از چیزی که فکرشو میکنی!
✨ وقتی CROSS JOIN میزنی، حتماً حواست به حجم دیتا باشه. ینی چی؟ ینی اول جدول کوچیکتر رو بذار که زودتر فیلتر بشه.
✨ اگه میخوای یه گزارش پیچیده دربیاری و مجبور شدی CROSS JOIN بزنی، سعی کن فیلترهای دیگه رو قبلش اعمال کنی. اینجوری حجم دیتا کمتر میشه و سرعتت میره بالا.✨
✨ یه وقتایی CROSS JOIN رو میشه با یه زیرپرس و جو جایگزین کرد. امتحانش کن! شاید جواب بده و سرعتت بهتر بشه.
✨ اگه مشکل performance داری، اول ببین ایندکسهات درسته یا نه. شاید مشکل از جای دیگهست و الکی داری CROSS JOIN رو مقصر میدونی.
✨ قبل از اینکه کدت رو deploy کنی، حتماً CROSS JOINت رو با یه دیتای تستی بزرگتر امتحان کن. اینجوری مطمئن میشی که تو production به مشکل نمیخوری.
✨ از ابزارهای monitoring استفاده کن تا ببینی queryهات چقدر resource مصرف میکنن. اینجوری میفهمی CROSS JOINت داره چه بلایی سر سرورت میاره.
✨ اگه CROSS JOINت خیلی کنده، به جای یه query بزرگ، تیکهتیکهش کن و نتیجهها رو تو یه جدول temporary ذخیره کن. اینجوری شاید manageableتر بشه.
ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
لطفا ما رو به دیگران هم معرفی کنید...
آدرس کانال اصلی :
https://t.me/Tu_24
آدرس وبسایت:
https://Tutorial24.ir
Telegram
آموزش کامپیوتر و برنامه نویسی tu24
* برنامه نویسی
* علوم کامپیوتر
* ریاضیات مورد نیاز علوم کامپیوتر
* هوش مصنوعی
* علوم داده
* داده کاوی
* بیگ دیتا
* پیشنهادات، تبلیغات و تبادل و ... : @ma_limbs
* تعرفه تبلیغات:
https://t.me/+w-o6dHW5O31jMWNk
* علوم کامپیوتر
* ریاضیات مورد نیاز علوم کامپیوتر
* هوش مصنوعی
* علوم داده
* داده کاوی
* بیگ دیتا
* پیشنهادات، تبلیغات و تبادل و ... : @ma_limbs
* تعرفه تبلیغات:
https://t.me/+w-o6dHW5O31jMWNk
💠 عضو جامع ترین کانال های توسعه فردی، روانشناسی و موفقیت شوید:
➡️ https://t.me/addlist/AX8uaLK6gE1jNzg0
➡️ https://t.me/addlist/AX8uaLK6gE1jNzg0
شامل موضوعات آموزشی زیر:
توسعه و رشد فردی
افزایش ثروت
هدف گذاری و مدیریت زمان
مهارت های اجتماعی، ارتباطی و فن بیان
روانشناسی و خودیاری
موفقیت
عادات موثر
سلامت و تغذیه سالم
موفقیت شغلی
عبارات تاکیدی
مدیریت اضطراب و خشم
روان درمانی CBT و ACT
شخصیت شناسی و تحلیل روانشناسی
انگیزشی
کودک درون
تکنیک های NLP
یوگا
افزایش حافظه
مدیتیشن
موفقیت تحصیلی
مطالعه موثر
افزایش اعتماد به نفس
افزایش تمرکز
تفکر مثبت
افزایش خلاقیت
نقل قول های انگیزشی
با کلیک بر روی لینک زیر عضو تمامی این کانال ها شوید:
➡️ https://t.me/addlist/AX8uaLK6gE1jNzg0
➡️ https://t.me/addlist/AX8uaLK6gE1jNzg0
➡️ https://t.me/addlist/AX8uaLK6gE1jNzg0
➡️ https://t.me/addlist/AX8uaLK6gE1jNzg0
شامل موضوعات آموزشی زیر:
توسعه و رشد فردی
افزایش ثروت
هدف گذاری و مدیریت زمان
مهارت های اجتماعی، ارتباطی و فن بیان
روانشناسی و خودیاری
موفقیت
عادات موثر
سلامت و تغذیه سالم
موفقیت شغلی
عبارات تاکیدی
مدیریت اضطراب و خشم
روان درمانی CBT و ACT
شخصیت شناسی و تحلیل روانشناسی
انگیزشی
کودک درون
تکنیک های NLP
یوگا
افزایش حافظه
مدیتیشن
موفقیت تحصیلی
مطالعه موثر
افزایش اعتماد به نفس
افزایش تمرکز
تفکر مثبت
افزایش خلاقیت
نقل قول های انگیزشی
با کلیک بر روی لینک زیر عضو تمامی این کانال ها شوید:
➡️ https://t.me/addlist/AX8uaLK6gE1jNzg0
➡️ https://t.me/addlist/AX8uaLK6gE1jNzg0
Telegram
موفقیت
You’ve been invited to add the folder “موفقیت”, which includes 26 chats.
ArrayPool<T> در C# برای مدیریت حافظه آرایهها کاربرد دارد. 💡
متد `Rent()` یک آرایه از Pool اجاره میکند. ⚠️
متد `Return()` آرایه را پس از استفاده، به Pool برمیگرداند تا دوباره استفاده شود. ✅
استفاده درست از `Return()` از ایجاد Garbage جلوگیری میکند.
https://t.me/csharp7
متد `Rent()` یک آرایه از Pool اجاره میکند. ⚠️
متد `Return()` آرایه را پس از استفاده، به Pool برمیگرداند تا دوباره استفاده شود. ✅
استفاده درست از `Return()` از ایجاد Garbage جلوگیری میکند.
https://t.me/csharp7
🔵 با عضویت در لیست تلگرامی جامع آموزش زبان زیر عضو بی نظیرترین و کامل ترین مجموعه آموزش زبان انگلیسی تلگرامی شوید:
🟢 پادکست، کوییز، گرامر، آیلتس، تافل، ویدیو، آموزش زبان به کودکان، اصطلاحات انگلیسی، زبان کنکور و ... :
https://t.me/addlist/hK74E7joz0ZiOGY0
https://t.me/addlist/hK74E7joz0ZiOGY0
https://t.me/addlist/hK74E7joz0ZiOGY0
🟢 پادکست، کوییز، گرامر، آیلتس، تافل، ویدیو، آموزش زبان به کودکان، اصطلاحات انگلیسی، زبان کنکور و ... :
https://t.me/addlist/hK74E7joz0ZiOGY0
https://t.me/addlist/hK74E7joz0ZiOGY0
https://t.me/addlist/hK74E7joz0ZiOGY0
Telegram
زبان
You’ve been invited to add the folder “زبان”, which includes 50 chats.
در توسعه برنامههای دسکتاپ با WinForms در C#، مدیریت رویدادها نقشی کلیدی در ایجاد تعامل با کاربر دارد. برای سازماندهی بهتر کد و افزایش قابلیت نگهداری، استفاده از الگوهای طراحی مناسب توصیه میشود.
یکی از الگوهای پرکاربرد، Observer Pattern است. در این الگو، یک شیء (Subject) وضعیت خود را تغییر میدهد و تمام اشیاء وابسته (Observers) که به آن علاقهمند هستند، به طور خودکار مطلع شده و بهروزرسانی میشوند. در WinForms، این میتواند به این صورت باشد که یک کنترل (مانند دکمه) رویدادی را منتشر کند و چندین جزء دیگر (مثلاً لیبلها یا جعبههای متنی) به آن رویداد گوش دهند و واکنش نشان دهند.
الگوی دیگری که میتواند مفید باشد، Mediator Pattern است. این الگو به جای ارتباط مستقیم بین اشیاء، یک شیء واسطه (Mediator) ایجاد میکند که ارتباط بین اشیاء دیگر را مدیریت میکند. این امر از وابستگی مستقیم بین کامپوننتها جلوگیری کرده و کد را تمیزتر نگه میدارد. به عنوان مثال، در یک فرم پیچیده، یک mediator میتواند وظیفه هماهنگی بین دکمهها، لیستها و فیلدهای ورودی را بر عهده بگیرد تا از تداخل یا تکرار منطق جلوگیری شود.
همچنین، استفاده از Event Aggregator که نوعی از Mediator Pattern است، میتواند در پروژههای بزرگتر بسیار مفید باشد. Event Aggregator یک مرکز مرکزی برای انتشار و دریافت رویدادها فراهم میکند و به اجزای مختلف اجازه میدهد تا بدون نیاز به دانستن یکدیگر، با هم ارتباط برقرار کنند.
به یاد داشته باشید که انتخاب الگو بستگی به پیچیدگی و نیازهای پروژه شما دارد. استفاده صحیح از این الگوها میتواند به ساخت برنامههای WinForms سازمانیافتهتر، قابل تستتر و با قابلیت نگهداری بالاتر کمک کند. 🚀✨
https://t.me/csharp7
یکی از الگوهای پرکاربرد، Observer Pattern است. در این الگو، یک شیء (Subject) وضعیت خود را تغییر میدهد و تمام اشیاء وابسته (Observers) که به آن علاقهمند هستند، به طور خودکار مطلع شده و بهروزرسانی میشوند. در WinForms، این میتواند به این صورت باشد که یک کنترل (مانند دکمه) رویدادی را منتشر کند و چندین جزء دیگر (مثلاً لیبلها یا جعبههای متنی) به آن رویداد گوش دهند و واکنش نشان دهند.
الگوی دیگری که میتواند مفید باشد، Mediator Pattern است. این الگو به جای ارتباط مستقیم بین اشیاء، یک شیء واسطه (Mediator) ایجاد میکند که ارتباط بین اشیاء دیگر را مدیریت میکند. این امر از وابستگی مستقیم بین کامپوننتها جلوگیری کرده و کد را تمیزتر نگه میدارد. به عنوان مثال، در یک فرم پیچیده، یک mediator میتواند وظیفه هماهنگی بین دکمهها، لیستها و فیلدهای ورودی را بر عهده بگیرد تا از تداخل یا تکرار منطق جلوگیری شود.
همچنین، استفاده از Event Aggregator که نوعی از Mediator Pattern است، میتواند در پروژههای بزرگتر بسیار مفید باشد. Event Aggregator یک مرکز مرکزی برای انتشار و دریافت رویدادها فراهم میکند و به اجزای مختلف اجازه میدهد تا بدون نیاز به دانستن یکدیگر، با هم ارتباط برقرار کنند.
به یاد داشته باشید که انتخاب الگو بستگی به پیچیدگی و نیازهای پروژه شما دارد. استفاده صحیح از این الگوها میتواند به ساخت برنامههای WinForms سازمانیافتهتر، قابل تستتر و با قابلیت نگهداری بالاتر کمک کند. 🚀✨
https://t.me/csharp7
Telegram
آموزش C# و .Net
تعرفه تبلیغات :
https://t.me/+w-o6dHW5O31jMWNk
آیدی ادمین:
@ma_limbs
https://t.me/+w-o6dHW5O31jMWNk
آیدی ادمین:
@ma_limbs
🔵 کوییز #سی_شارپ
🟣 موضوع : معرفی و کاربرد Entity Framework
🟢 سوال :
کدام یک از موارد زیر یک روش برای تعریف جداول پایگاه داده در Entity Framework است؟
گزینه ۱:
استفاده از کلاسهای C#
گزینه ۲:
استفاده از دستورات SQL
گزینه ۳:
استفاده از فایلهای XML
گزینه ۴:
استفاده از فایلهای JSON
🔵 گزینه صحیح:1
🟢 توضیح :
Entity Framework جداول پایگاه داده را با استفاده از کلاسهای C# تعریف میکند.
ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
لطفا ما رو به دیگران هم معرفی کنید...
آدرس کانال اصلی :
https://t.me/Tu_24
آدرس وبسایت:
https://Tutorial24.ir
🟣 موضوع : معرفی و کاربرد Entity Framework
🟢 سوال :
کدام یک از موارد زیر یک روش برای تعریف جداول پایگاه داده در Entity Framework است؟
گزینه ۱:
استفاده از کلاسهای C#
گزینه ۲:
استفاده از دستورات SQL
گزینه ۳:
استفاده از فایلهای XML
گزینه ۴:
استفاده از فایلهای JSON
🔵 گزینه صحیح:
🟢 توضیح :
ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
لطفا ما رو به دیگران هم معرفی کنید...
آدرس کانال اصلی :
https://t.me/Tu_24
آدرس وبسایت:
https://Tutorial24.ir
Telegram
آموزش کامپیوتر و برنامه نویسی tu24
* برنامه نویسی
* علوم کامپیوتر
* ریاضیات مورد نیاز علوم کامپیوتر
* هوش مصنوعی
* علوم داده
* داده کاوی
* بیگ دیتا
* پیشنهادات، تبلیغات و تبادل و ... : @ma_limbs
* تعرفه تبلیغات:
https://t.me/+w-o6dHW5O31jMWNk
* علوم کامپیوتر
* ریاضیات مورد نیاز علوم کامپیوتر
* هوش مصنوعی
* علوم داده
* داده کاوی
* بیگ دیتا
* پیشنهادات، تبلیغات و تبادل و ... : @ma_limbs
* تعرفه تبلیغات:
https://t.me/+w-o6dHW5O31jMWNk
💡 نکته #NoSQL
🟣 موضوع : FaunaDB و NewSQL ترکیبی
✨ نکته :
ساختارهای داده تو FaunaDB خیلی منعطفن. ✨ میتونی دادههات رو هرطور که دوست داری ذخیره کنی. 😎
ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
لطفا ما رو به دیگران هم معرفی کنید...
آدرس کانال اصلی :
https://t.me/Tu_24
آدرس وبسایت:
https://Tutorial24.ir
🟣 موضوع : FaunaDB و NewSQL ترکیبی
✨ نکته :
ساختارهای داده تو FaunaDB خیلی منعطفن. ✨ میتونی دادههات رو هرطور که دوست داری ذخیره کنی. 😎
ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
لطفا ما رو به دیگران هم معرفی کنید...
آدرس کانال اصلی :
https://t.me/Tu_24
آدرس وبسایت:
https://Tutorial24.ir
Telegram
آموزش کامپیوتر و برنامه نویسی tu24
* برنامه نویسی
* علوم کامپیوتر
* ریاضیات مورد نیاز علوم کامپیوتر
* هوش مصنوعی
* علوم داده
* داده کاوی
* بیگ دیتا
* پیشنهادات، تبلیغات و تبادل و ... : @ma_limbs
* تعرفه تبلیغات:
https://t.me/+w-o6dHW5O31jMWNk
* علوم کامپیوتر
* ریاضیات مورد نیاز علوم کامپیوتر
* هوش مصنوعی
* علوم داده
* داده کاوی
* بیگ دیتا
* پیشنهادات، تبلیغات و تبادل و ... : @ma_limbs
* تعرفه تبلیغات:
https://t.me/+w-o6dHW5O31jMWNk
🔵 دوست داری برنامه نویس حرفه ای بشی یا مهارت های کامپیوتری خودت رو افزایش بدی؟ با عضویت در لیست تلگرامی زیر در بی نظیر ترین کانال های برنامه نویسی ما عضو شوید:
🟢 پایتون، هوش مصنوعی، یادگیری ماشین، سی ++، سی شارپ، دات نت، نود جی اس، جاوا اسکریپت، شبکه، علم داده، پایگاه داده، sql، nosql ، مهارت های ICDL، سیستم عامل، لینوکس، فتوشاپ، گرافیک، اندروید، جاوا، ساخت اپلیکیشن موبایل، ری اکت، جی کوئری، php و laravel، دروس رشته کامپیوتر، کنکور کامپیوتر و ...
عضو لیست جامع شوید:
https://t.me/addlist/_UjG99eD_E4zYzhk
https://t.me/addlist/_UjG99eD_E4zYzhk
https://t.me/addlist/_UjG99eD_E4zYzhk
🟢 پایتون، هوش مصنوعی، یادگیری ماشین، سی ++، سی شارپ، دات نت، نود جی اس، جاوا اسکریپت، شبکه، علم داده، پایگاه داده، sql، nosql ، مهارت های ICDL، سیستم عامل، لینوکس، فتوشاپ، گرافیک، اندروید، جاوا، ساخت اپلیکیشن موبایل، ری اکت، جی کوئری، php و laravel، دروس رشته کامپیوتر، کنکور کامپیوتر و ...
عضو لیست جامع شوید:
https://t.me/addlist/_UjG99eD_E4zYzhk
https://t.me/addlist/_UjG99eD_E4zYzhk
https://t.me/addlist/_UjG99eD_E4zYzhk
Telegram
برنامه نویسی
You’ve been invited to add the folder “برنامه نویسی”, which includes 55 chats.
در سیشارپ، فیلدها (Fields) متغیرهایی هستند که وضعیت یک کلاس یا شیء را ذخیره میکنند. آنها معمولاً به صورت
ویژگیها (Properties) مکانیزم استاندارد برای خواندن و نوشتن مقادیر فیلدها هستند. آنها از طریق گتر (getter) و سِتر (setter) به فیلدها دسترسی دارند و امکان اعتبارسنجی یا اجرای منطق اضافی را فراهم میکنند.
استفاده از ویژگیها به جای دسترسی مستقیم به فیلدها، کد را انعطافپذیرتر و قابل نگهداریتر میکند. 👍💡
https://t.me/csharp7
private تعریف میشوند تا دسترسی مستقیم به آنها کنترل شود.public class Person
{
private string name; // این یک فیلد است
}
ویژگیها (Properties) مکانیزم استاندارد برای خواندن و نوشتن مقادیر فیلدها هستند. آنها از طریق گتر (getter) و سِتر (setter) به فیلدها دسترسی دارند و امکان اعتبارسنجی یا اجرای منطق اضافی را فراهم میکنند.
public class Person
{
private string name;
public string Name // این یک ویژگی است
{
get { return name; }
set { name = value; }
}
}
استفاده از ویژگیها به جای دسترسی مستقیم به فیلدها، کد را انعطافپذیرتر و قابل نگهداریتر میکند. 👍💡
https://t.me/csharp7
Telegram
آموزش C# و .Net
تعرفه تبلیغات :
https://t.me/+w-o6dHW5O31jMWNk
آیدی ادمین:
@ma_limbs
https://t.me/+w-o6dHW5O31jMWNk
آیدی ادمین:
@ma_limbs
در C#، پرتاب استثناها (Throwing Exceptions) ابزاری قدرتمند برای مدیریت خطاها و شرایط غیرمنتظره در حین اجرای برنامه است. این کار به شما اجازه میدهد تا زمانی که یک رویداد غیرعادی رخ میدهد، کنترل را به بخشی از برنامه که قادر به مدیریت آن است، منتقل کنید.
برای پرتاب یک استثنا، از کلمه کلیدی
در این مثال، اگر مقدار ورودی منفی باشد، یک استثنای
Unhandled Exceptions
زمانی که یک استثنا پرتاب میشود اما توسط هیچ بلوک
مدیریت صحیح استثناها، برنامههای شما را پایدارتر و قابل اعتمادتر میسازد. با پرتاب استثناها در مواقع مناسب و سپس مدیریت آنها در بخشهای بالاتر برنامه، میتوانید خطاهای احتمالی را به شیوهای منظم و کنترل شده برطرف کنید. 💥💡
https://t.me/csharp7
برای پرتاب یک استثنا، از کلمه کلیدی
throw به همراه یک شیء از نوع استثنا استفاده میکنید. به عنوان مثال:if (value < 0)
{
throw new ArgumentOutOfRangeException("value", "مقدار نمیتواند منفی باشد.");
}
در این مثال، اگر مقدار ورودی منفی باشد، یک استثنای
ArgumentOutOfRangeException پرتاب میشود. این استثنا اطلاعاتی درباره دلیل خطا (نام پارامتر و پیام خطا) را در خود نگه میدارد.Unhandled Exceptions
زمانی که یک استثنا پرتاب میشود اما توسط هیچ بلوک
try-catch در برنامه دریافت و مدیریت نمیشود، به آن "Unhandled Exception" یا استثنای مدیریت نشده میگویند. در این حالت، اجرای برنامه متوقف شده و معمولاً یک پیام خطا به کاربر نمایش داده میشود.مدیریت صحیح استثناها، برنامههای شما را پایدارتر و قابل اعتمادتر میسازد. با پرتاب استثناها در مواقع مناسب و سپس مدیریت آنها در بخشهای بالاتر برنامه، میتوانید خطاهای احتمالی را به شیوهای منظم و کنترل شده برطرف کنید. 💥💡
https://t.me/csharp7
Telegram
آموزش C# و .Net
تعرفه تبلیغات :
https://t.me/+w-o6dHW5O31jMWNk
آیدی ادمین:
@ma_limbs
https://t.me/+w-o6dHW5O31jMWNk
آیدی ادمین:
@ma_limbs
متد `RuntimeHelpers.IsReferenceOrContainsReferences<T>` در C# بررسی میکنه که آیا نوع `T` یک نوع reference است یا شامل فیلدهای reference type میشه. 🔍
این متد در سناریوهایی کاربرد داره که نیاز به تعیین نحوه مدیریت حافظه یک نوع داریم. به طور مثال، میتونیم بفهمیم که آیا نوعی نیاز به garbage collection داره یا نه. ♻️
خروجی این متد یک مقدار boolean هست. `true` یعنی نوع مورد نظر reference type هست یا شامل اون میشه و `false` یعنی value type هست و reference type نداره. ✅
https://t.me/csharp7
این متد در سناریوهایی کاربرد داره که نیاز به تعیین نحوه مدیریت حافظه یک نوع داریم. به طور مثال، میتونیم بفهمیم که آیا نوعی نیاز به garbage collection داره یا نه. ♻️
خروجی این متد یک مقدار boolean هست. `true` یعنی نوع مورد نظر reference type هست یا شامل اون میشه و `false` یعنی value type هست و reference type نداره. ✅
https://t.me/csharp7
در C#، انواع دادهها به دو دسته اصلی تقسیم میشوند: انواع مقداری (Value Types) و انواع ارجاعی (Reference Types).
انواع مقداری: شامل انواع پایهای مانند
انواع ارجاعی: شامل کلاسها (class)، آرایهها (array)، رشتهها (string) و واسطها (interface) هستند. این نوع دادهها به جای مقدار خود، به محل قرارگیری داده در حافظه (heap) ارجاع میدهند.
تعریف اولین کلاس ساده در C#:
کلاسها بلوکهای سازنده برنامههای شیءگرا در C# هستند. یک کلاس میتواند شامل متغیرهایی (که به آنها فیلد یا عضو داده گفته میشود) و متدهایی (توابعی که عملیاتی را انجام میدهند) باشد.
برای تعریف یک کلاس ساده، از کلمه کلیدی
نحوه استفاده از کلاس:
برای استفاده از یک کلاس، ابتدا باید یک نمونه (instance) از آن کلاس ایجاد کنیم. این کار با استفاده از کلمه کلیدی
با این تعریف ساده، شما یک کلاس
https://t.me/csharp7
انواع مقداری: شامل انواع پایهای مانند
int (عدد صحیح)، float (عدد اعشاری)، bool (مقدار بولی)، char (کاراکتر) و همچنین انواع ساختاریافته (struct) هستند. این نوع دادهها مستقیماً مقدار خود را ذخیره میکنند.انواع ارجاعی: شامل کلاسها (class)، آرایهها (array)، رشتهها (string) و واسطها (interface) هستند. این نوع دادهها به جای مقدار خود، به محل قرارگیری داده در حافظه (heap) ارجاع میدهند.
تعریف اولین کلاس ساده در C#:
کلاسها بلوکهای سازنده برنامههای شیءگرا در C# هستند. یک کلاس میتواند شامل متغیرهایی (که به آنها فیلد یا عضو داده گفته میشود) و متدهایی (توابعی که عملیاتی را انجام میدهند) باشد.
برای تعریف یک کلاس ساده، از کلمه کلیدی
class استفاده میکنیم.// تعریف یک کلاس ساده به نام Person
public class Person
{
// فیلد (عضو داده) برای ذخیره نام
public string Name;
// فیلد (عضو داده) برای ذخیره سن
public int Age;
// متد برای نمایش اطلاعات شخص
public void DisplayInfo()
{
Console.WriteLine($"نام: {Name}, سن: {Age}");
}
}
نحوه استفاده از کلاس:
برای استفاده از یک کلاس، ابتدا باید یک نمونه (instance) از آن کلاس ایجاد کنیم. این کار با استفاده از کلمه کلیدی
new انجام میشود.// ایجاد یک نمونه جدید از کلاس Person
Person person1 = new Person();
// اختصاص مقادیر به فیلدهای نمونه
person1.Name = "علی";
person1.Age = 30;
// فراخوانی متد DisplayInfo
person1.DisplayInfo(); // خروجی: نام: علی, سن: 30
با این تعریف ساده، شما یک کلاس
Person دارید که میتواند اطلاعات مربوط به یک شخص را ذخیره و نمایش دهد. 🧑💻👨💼https://t.me/csharp7
Telegram
آموزش C# و .Net
تعرفه تبلیغات :
https://t.me/+w-o6dHW5O31jMWNk
آیدی ادمین:
@ma_limbs
https://t.me/+w-o6dHW5O31jMWNk
آیدی ادمین:
@ma_limbs