در C#، مدیریت خطا و استثناها بخش مهمی از نوشتن کدهای پایدار و قابل اعتماد است. استثناها (Exceptions) نشاندهنده رویدادهایی هستند که در حین اجرای برنامه رخ میدهند و اجرای عادی برنامه را مختل میکنند.
انواع رایج استثناها در C#:
`ArgumentNullException`: زمانی رخ میدهد که یک متد، پارامتری را که نباید null باشد، با مقدار null دریافت کند.
```csharp
public void ProcessData(string data)
{
if (data == null)
{
throw new ArgumentNullException(nameof(data));
}
// ... پردازش داده
}
```
`InvalidOperationException`: زمانی رخ میدهد که وضعیت یک شیء برای انجام عملیات درخواستی نامعتبر باشد.
```csharp
private bool _isInitialized = false;
public void PerformAction()
{
if (!_isInitialized)
{
throw new InvalidOperationException("Operation cannot be performed because the object is not initialized.");
}
// ... انجام عملیات
}
```
`DivideByZeroException`: زمانی رخ میدهد که تلاش شود عددی بر صفر تقسیم شود.
```csharp
try
{
int a = 10;
int b = 0;
int result = a / b;
}
catch (DivideByZeroException ex)
{
Console.WriteLine("Error: Cannot divide by zero.");
}
```
استفاده صحیح از بلوکهای
https://t.me/csharp7
انواع رایج استثناها در C#:
`ArgumentNullException`: زمانی رخ میدهد که یک متد، پارامتری را که نباید null باشد، با مقدار null دریافت کند.
```csharp
public void ProcessData(string data)
{
if (data == null)
{
throw new ArgumentNullException(nameof(data));
}
// ... پردازش داده
}
```
ArgumentOutOfRangeException: زمانی رخ میدهد که مقدار یک پارامتر خارج از محدوده مجاز باشد.public void SetValue(int value)
{
if (value < 0 || value > 100)
{
throw new ArgumentOutOfRangeException(nameof(value), "Value must be between 0 and 100.");
}
// ... تنظیم مقدار
}
`InvalidOperationException`: زمانی رخ میدهد که وضعیت یک شیء برای انجام عملیات درخواستی نامعتبر باشد.
```csharp
private bool _isInitialized = false;
public void PerformAction()
{
if (!_isInitialized)
{
throw new InvalidOperationException("Operation cannot be performed because the object is not initialized.");
}
// ... انجام عملیات
}
```
FileNotFoundException: زمانی رخ میدهد که سیستمی تلاش کند فایلی را که وجود ندارد، باز کند.try
{
string filePath = "nonexistent.txt";
string content = File.ReadAllText(filePath);
}
catch (FileNotFoundException ex)
{
Console.WriteLine($"Error: File not found - {ex.FileName}");
}
`DivideByZeroException`: زمانی رخ میدهد که تلاش شود عددی بر صفر تقسیم شود.
```csharp
try
{
int a = 10;
int b = 0;
int result = a / b;
}
catch (DivideByZeroException ex)
{
Console.WriteLine("Error: Cannot divide by zero.");
}
```
NullReferenceException: زمانی رخ میدهد که تلاش شود از یک شیء که مقدار آن null است، استفاده شود.string text = null;
try
{
int length = text.Length; // این خط باعث NullReferenceException میشود
}
catch (NullReferenceException ex)
{
Console.WriteLine("Error: Attempted to access a member of a null object.");
}
استفاده صحیح از بلوکهای
try-catch به شما امکان میدهد تا این استثناها را مدیریت کرده و از کرش کردن برنامه جلوگیری کنید. 💥💡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/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.
🔵 کوییز #سی_شارپ
🟣 موضوع : نکات بهینهسازی و بهبود عملکرد در C#
🟢 سوال :
کدام یک از موارد زیر یک روش برای بهبود عملکرد سریالسازی و غیرسریالسازی در C# است؟
گزینه ۱:
استفاده از XML Serializer
گزینه ۲:
استفاده از JSON Serializer
گزینه ۳:
استفاده از Binary Serializer
گزینه ۴:
استفاده از Protocol Buffers یا MessagePack
🔵 گزینه صحیح:4
🟢 توضیح :
Protocol Buffers و MessagePack برای سریالسازی و غیرسریالسازی کارآمدتر هستند.
ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
لطفا ما رو به دیگران هم معرفی کنید...
آدرس کانال اصلی :
https://t.me/Tu_24
آدرس وبسایت:
https://Tutorial24.ir
🟣 موضوع : نکات بهینهسازی و بهبود عملکرد در C#
🟢 سوال :
کدام یک از موارد زیر یک روش برای بهبود عملکرد سریالسازی و غیرسریالسازی در C# است؟
گزینه ۱:
استفاده از XML Serializer
گزینه ۲:
استفاده از JSON Serializer
گزینه ۳:
استفاده از Binary Serializer
گزینه ۴:
استفاده از Protocol Buffers یا MessagePack
🔵 گزینه صحیح:
🟢 توضیح :
ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
لطفا ما رو به دیگران هم معرفی کنید...
آدرس کانال اصلی :
https://t.me/Tu_24
آدرس وبسایت:
https://Tutorial24.ir
Telegram
آموزش کامپیوتر و برنامه نویسی tu24
* برنامه نویسی
* علوم کامپیوتر
* ریاضیات مورد نیاز علوم کامپیوتر
* هوش مصنوعی
* علوم داده
* داده کاوی
* بیگ دیتا
* پیشنهادات، تبلیغات و تبادل و ... : @ma_limbs
* تعرفه تبلیغات:
https://t.me/+w-o6dHW5O31jMWNk
* علوم کامپیوتر
* ریاضیات مورد نیاز علوم کامپیوتر
* هوش مصنوعی
* علوم داده
* داده کاوی
* بیگ دیتا
* پیشنهادات، تبلیغات و تبادل و ... : @ma_limbs
* تعرفه تبلیغات:
https://t.me/+w-o6dHW5O31jMWNk
در C#، اعضای ساختارها (structs) در زمان ایجاد، مقادیر پیشفرض خود را دریافت میکنند. این مقادیر بسته به نوع داده عضو متفاوت است:
- انواع مقداری (Value Types):
- انواع عددی (مانند
- انواع منطقی (
- انواع کاراکتری (
- انواع شمارشی (enums): مقدار پیشفرض آنها برابر با مقدار عددی صفر عضو اول enum است.
- ساختارهای دیگر: مقدار پیشفرض آنها نیز صفر برای تمام اعضای مقداریشان خواهد بود.
- انواع ارجاعی (Reference Types) که به عنوان اعضای ساختار قرار میگیرند:
- مانند کلاسها، رشتهها (
این رفتار تضمین میکند که حتی قبل از اختصاص مقدار صریح، اعضای ساختار دارای یک وضعیت معتبر و قابل پیشبینی باشند. 💡⚙️
https://t.me/csharp7
- انواع مقداری (Value Types):
- انواع عددی (مانند
int, float, double, decimal): مقدار پیشفرض آنها صفر است. - انواع منطقی (
bool): مقدار پیشفرض آنها false است. - انواع کاراکتری (
char): مقدار پیشفرض آنها \0 (کاراکتر null) است. - انواع شمارشی (enums): مقدار پیشفرض آنها برابر با مقدار عددی صفر عضو اول enum است.
- ساختارهای دیگر: مقدار پیشفرض آنها نیز صفر برای تمام اعضای مقداریشان خواهد بود.
- انواع ارجاعی (Reference Types) که به عنوان اعضای ساختار قرار میگیرند:
- مانند کلاسها، رشتهها (
string)، آرایهها و delegates: مقدار پیشفرض آنها null است.این رفتار تضمین میکند که حتی قبل از اختصاص مقدار صریح، اعضای ساختار دارای یک وضعیت معتبر و قابل پیشبینی باشند. 💡⚙️
https://t.me/csharp7
This media is not supported in your browser
VIEW IN TELEGRAM
🔵 Eclipse - Create Java Project
🟢 کیفیت : متوسط
🔴 توجه کنید این ویدیو با کیفیت متوسط می باشد. طی روزهای آینده نسخه های متفاوت با کیفیت بالاتر یا کم حجم تر از این نسخه در کانال قرار داده خواهد شد.
🟣 Eclipse
🟢 زبان آموزش: انگلیسی
🟣 دوره آموزش Eclipse
ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
لطفا ما رو به دیگران هم معرفی کنید...
آدرس کانال اصلی :
https://t.me/Tu_24
آدرس وبسایت:
https://Tutorial24.ir
🟢 کیفیت : متوسط
🔴 توجه کنید این ویدیو با کیفیت متوسط می باشد. طی روزهای آینده نسخه های متفاوت با کیفیت بالاتر یا کم حجم تر از این نسخه در کانال قرار داده خواهد شد.
🟣 Eclipse
🟢 زبان آموزش: انگلیسی
🟣 دوره آموزش Eclipse
ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
لطفا ما رو به دیگران هم معرفی کنید...
آدرس کانال اصلی :
https://t.me/Tu_24
آدرس وبسایت:
https://Tutorial24.ir
💠 عضو جامع ترین کانال های توسعه فردی، روانشناسی و موفقیت شوید:
➡️ 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.
هنگام کار با مجموعههای داده در C#، به خصوص زمانی که نیاز به افزودن یا حذف مکرر عناصر در ابتدای یک لیست دارید، توجه به کارایی عملیات بسیار مهم است.
برای مثال، تصور کنید لیستی از اعداد دارید و میخواهید اعداد جدیدی را به ابتدای آن اضافه کنید. استفاده از
در چنین سناریوهایی، استفاده از
بنابراین، انتخاب نوع مجموعه داده مناسب بر اساس الگوی دسترسی و عملیات مورد نیاز، نقش کلیدی در بهینهسازی کد و افزایش سرعت اجرای برنامههای شما دارد. 💡✨
https://t.me/csharp7
برای مثال، تصور کنید لیستی از اعداد دارید و میخواهید اعداد جدیدی را به ابتدای آن اضافه کنید. استفاده از
List<T> برای این منظور میتواند هزینهبر باشد، زیرا هر بار که عنصری به ابتدا اضافه میشود، تمام عناصر موجود باید یک خانه به جلو شیفت داده شوند. این عملیات در صورت تکرار زیاد، میتواند منجر به کندی قابل توجه برنامه شود.// مثال با List<T> که میتواند کند باشد
var myList = new List<int> { 1, 2, 3 };
for (int i = 0; i < 1000; i++)
{
myList.Insert(0, i); // عملیات Insert در ابتدای List<T> پرهزینه است
}
در چنین سناریوهایی، استفاده از
LinkedList<T> گزینه بهتری است. LinkedList<T> برای عملیات افزودن و حذف در ابتدا یا انتهای لیست، بسیار کارآمدتر عمل میکند، زیرا نیازی به جابجایی عناصر ندارد و صرفاً با دستکاری اشارهگرها (pointers) انجام میشود.// مثال با LinkedList<T> که کارآمدتر است
var myLinkedList = new LinkedList<int>();
for (int i = 0; i < 1000; i++)
{
myLinkedList.AddFirst(i); // AddFirst در LinkedList<T> بسیار سریع است
}
بنابراین، انتخاب نوع مجموعه داده مناسب بر اساس الگوی دسترسی و عملیات مورد نیاز، نقش کلیدی در بهینهسازی کد و افزایش سرعت اجرای برنامههای شما دارد. 💡✨
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.
This media is not supported in your browser
VIEW IN TELEGRAM
🔵 Eclipse - Hover Help
🟢 کیفیت : متوسط
🔴 توجه کنید این ویدیو با کیفیت متوسط می باشد. طی روزهای آینده نسخه های متفاوت با کیفیت بالاتر یا کم حجم تر از این نسخه در کانال قرار داده خواهد شد.
🟣 Eclipse
🟢 زبان آموزش: انگلیسی
🟣 دوره آموزش Eclipse
ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
لطفا ما رو به دیگران هم معرفی کنید...
آدرس کانال اصلی :
https://t.me/Tu_24
آدرس وبسایت:
https://Tutorial24.ir
🟢 کیفیت : متوسط
🔴 توجه کنید این ویدیو با کیفیت متوسط می باشد. طی روزهای آینده نسخه های متفاوت با کیفیت بالاتر یا کم حجم تر از این نسخه در کانال قرار داده خواهد شد.
🟣 Eclipse
🟢 زبان آموزش: انگلیسی
🟣 دوره آموزش Eclipse
ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
لطفا ما رو به دیگران هم معرفی کنید...
آدرس کانال اصلی :
https://t.me/Tu_24
آدرس وبسایت:
https://Tutorial24.ir
در C#، دسترسی به عناصر یک
برای دسترسی مستقیم به یک عنصر، از اندیس آن استفاده کنید:
برای پیمایش کل لیست، میتوانید از حلقه
با استفاده از حلقه
با استفاده از حلقه
هر دو روش برای کار با مجموعههای داده در لیستهای C# کاربردی هستند. 💡📊
https://t.me/csharp7
List<T> هم از طریق index (اندیس) و هم با استفاده از حلقههای تکرار امکانپذیر است.برای دسترسی مستقیم به یک عنصر، از اندیس آن استفاده کنید:
List<string> names = new List<string> { "Alice", "Bob", "Charlie" };
string firstPerson = names[0]; // دسترسی به عنصر اول (اندیس 0)
string secondPerson = names[1]; // دسترسی به عنصر دوم (اندیس 1)
برای پیمایش کل لیست، میتوانید از حلقه
for یا foreach بهره ببرید:با استفاده از حلقه
for و اندیس:for (int i = 0; i < names.Count; i++)
{
Console.WriteLine($"Element at index {i}: {names[i]}");
}
با استفاده از حلقه
foreach (که معمولاً خواناتر است):foreach (string name in names)
{
Console.WriteLine($"Name: {name}");
}
هر دو روش برای کار با مجموعههای داده در لیستهای C# کاربردی هستند. 💡📊
https://t.me/csharp7
SyntaxProvider در Roslyn، ابزاری برای تحلیل سورس کد C# به صورت افزایشی (Incremental) است. 🔄 این رویکرد باعث میشه کامپایلر فقط تغییرات کد رو پردازش کنه و سرعت کامپایل به شکل چشمگیری افزایش پیدا کنه. 🚀 برای پروژههای بزرگ، SyntaxProvider یک گزینه عالی برای بهینهسازی فرآیند بیلد محسوب میشه. 👍
https://t.me/csharp7
https://t.me/csharp7
🔵 دوست داری برنامه نویس حرفه ای بشی یا مهارت های کامپیوتری خودت رو افزایش بدی؟ با عضویت در لیست تلگرامی زیر در بی نظیر ترین کانال های برنامه نویسی ما عضو شوید:
🟢 پایتون، هوش مصنوعی، یادگیری ماشین، سی ++، سی شارپ، دات نت، نود جی اس، جاوا اسکریپت، شبکه، علم داده، پایگاه داده، 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.
This media is not supported in your browser
VIEW IN TELEGRAM
🔵 آموزش گیت (Git) - مقدمه
🟢 کیفیت : متوسط
🔴 توجه کنید این ویدیو با کیفیت متوسط می باشد. طی روزهای آینده نسخه های متفاوت با کیفیت بالاتر یا کم حجم تر از این نسخه در کانال قرار داده خواهد شد.
🟣 آموزش گیت (Git)
🟢 زبان آموزش: فارسی
ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
لطفا ما رو به دیگران هم معرفی کنید...
آدرس کانال اصلی :
https://t.me/Tu_24
آدرس وبسایت:
https://Tutorial24.ir
🟢 کیفیت : متوسط
🔴 توجه کنید این ویدیو با کیفیت متوسط می باشد. طی روزهای آینده نسخه های متفاوت با کیفیت بالاتر یا کم حجم تر از این نسخه در کانال قرار داده خواهد شد.
🟣 آموزش گیت (Git)
🟢 زبان آموزش: فارسی
ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
لطفا ما رو به دیگران هم معرفی کنید...
آدرس کانال اصلی :
https://t.me/Tu_24
آدرس وبسایت:
https://Tutorial24.ir
This media is not supported in your browser
VIEW IN TELEGRAM
🔵 Eclipse - Different IDEs
🟢 کیفیت : متوسط
🔴 توجه کنید این ویدیو با کیفیت متوسط می باشد. طی روزهای آینده نسخه های متفاوت با کیفیت بالاتر یا کم حجم تر از این نسخه در کانال قرار داده خواهد شد.
🟣 Eclipse
🟢 زبان آموزش: انگلیسی
🟣 دوره آموزش Eclipse
ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
لطفا ما رو به دیگران هم معرفی کنید...
آدرس کانال اصلی :
https://t.me/Tu_24
آدرس وبسایت:
https://Tutorial24.ir
🟢 کیفیت : متوسط
🔴 توجه کنید این ویدیو با کیفیت متوسط می باشد. طی روزهای آینده نسخه های متفاوت با کیفیت بالاتر یا کم حجم تر از این نسخه در کانال قرار داده خواهد شد.
🟣 Eclipse
🟢 زبان آموزش: انگلیسی
🟣 دوره آموزش Eclipse
ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
لطفا ما رو به دیگران هم معرفی کنید...
آدرس کانال اصلی :
https://t.me/Tu_24
آدرس وبسایت:
https://Tutorial24.ir
توی #C، مقایسه بر اساس مقدار (Value-based equality) یعنی دو شیء وقتی برابرند که مقدارشون یکسان باشه.
اما مقایسه بر اساس ارجاع (Reference equality) یعنی دو شیء فقط وقتی برابرند که دقیقاً یک شیء در حافظه باشند. 🧠
متغیرهای value type مثل int و bool مقایسهشون value-based هست، اما classها بهصورت پیشفرض reference-based مقایسه میشن.
میتونید با override کردن متد Equals() و GetHashCode() برای classها، مقایسه value-based رو پیادهسازی کنید. ⚙️
https://t.me/csharp7
اما مقایسه بر اساس ارجاع (Reference equality) یعنی دو شیء فقط وقتی برابرند که دقیقاً یک شیء در حافظه باشند. 🧠
متغیرهای value type مثل int و bool مقایسهشون value-based هست، اما classها بهصورت پیشفرض reference-based مقایسه میشن.
میتونید با override کردن متد Equals() و GetHashCode() برای classها، مقایسه value-based رو پیادهسازی کنید. ⚙️
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.
در C#، چندریختی (Polymorphism) یکی از اصول کلیدی برنامهنویسی شیءگراست که به اشیاء از کلاسهای مختلف اجازه میدهد تا به یک پیام (متد) به روشهای متفاوت پاسخ دهند. این قابلیت معمولاً با استفاده از وراثت و متدهای مجازی پیادهسازی میشود.
برای درک بهتر، فرض کنید یک کلاس پایه
کلمه کلیدی
حالا کلاسهای مشتق شدهای مانند
کلمه کلیدی
حالا میتوانیم نمونههایی از این کلاسها را ایجاد کرده و رفتار چندریختی را مشاهده کنیم:
در اینجا، حتی اگر متغیر از نوع
https://t.me/csharp7
برای درک بهتر، فرض کنید یک کلاس پایه
Shape داریم که شامل متدی به نام Draw است. این متد در کلاس پایه فقط یک پیام کلی نمایش میدهد.public class Shape
{
public virtual void Draw()
{
Console.WriteLine("Drawing a generic shape.");
}
}
کلمه کلیدی
virtual در متد Draw به کامپایلر میگوید که این متد میتواند توسط کلاسهای مشتق شده بازتعریف (Override) شود.حالا کلاسهای مشتق شدهای مانند
Circle و Square را در نظر بگیرید که از Shape ارث میبرند. هر کدام از این کلاسها میتوانند متد Draw را بازتعریف کنند تا رفتار خاص خود را پیادهسازی کنند.public class Circle : Shape
{
public override void Draw()
{
Console.WriteLine("Drawing a circle.");
}
}
public class Square : Shape
{
public override void Draw()
{
Console.WriteLine("Drawing a square.");
}
}
کلمه کلیدی
override نشان میدهد که این متد، متد مجازی کلاس پایه را بازتعریف میکند.حالا میتوانیم نمونههایی از این کلاسها را ایجاد کرده و رفتار چندریختی را مشاهده کنیم:
Shape myCircle = new Circle();
Shape mySquare = new Square();
Shape genericShape = new Shape();
myCircle.Draw(); // خروجی: Drawing a circle.
mySquare.Draw(); // خروجی: Drawing a square.
genericShape.Draw(); // خروجی: Drawing a generic shape.
در اینجا، حتی اگر متغیر از نوع
Shape باشد، متد Draw فراخوانی شده مربوط به کلاس واقعی شیء ( Circle یا Square) است. این قدرت چندریختی را نشان میدهد. 💡🌍https://t.me/csharp7
Telegram
آموزش C# و .Net
تعرفه تبلیغات :
https://t.me/+w-o6dHW5O31jMWNk
آیدی ادمین:
@ma_limbs
https://t.me/+w-o6dHW5O31jMWNk
آیدی ادمین:
@ma_limbs
در C#، استفاده از شرطهای پیشگیری از خطا (Validation) قبل از اجرای کد اصلی، روشی کلیدی برای اطمینان از صحت ورودیها و جلوگیری از بروز خطاهای ناخواسته است. این کار باعث افزایش پایداری و قابلیت اطمینان برنامه میشود.
به عنوان مثال، قبل از استفاده از یک ورودی کاربر در محاسبات، میتوانیم بررسی کنیم که آیا این ورودی از نوع عددی مورد انتظار است یا خیر.
استفاده از متدهایی مانند
https://t.me/csharp7
به عنوان مثال، قبل از استفاده از یک ورودی کاربر در محاسبات، میتوانیم بررسی کنیم که آیا این ورودی از نوع عددی مورد انتظار است یا خیر.
string userInput = Console.ReadLine();
if (int.TryParse(userInput, out int number))
{
// کد اصلی که از 'number' استفاده میکند
Console.WriteLine($"عدد وارد شده: {number}");
}
else
{
Console.WriteLine("ورودی نامعتبر است. لطفاً یک عدد صحیح وارد کنید.");
}
استفاده از متدهایی مانند
int.TryParse به جای تبدیل مستقیم با int.Parse، از پرتاب شدن استثنا (Exception) در صورت نامعتبر بودن ورودی جلوگیری میکند. این رویکرد، برنامهنویسی ایمنتر و خواناتری را فراهم میآورد. 🛡️✅https://t.me/csharp7
💠 عضو جامع ترین کانال های توسعه فردی، روانشناسی و موفقیت شوید:
➡️ 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.
فشردهسازی Requestها تو #aspnetcore 🚀 باعث افزایش سرعت و کاهش مصرف پهنای باند میشه.
Middleware مربوط به Decompression اینجاست تا Requestهای فشرده (Gzip, Brotli) رو براتون باز کنه. 📦
دیگه نگران هندل کردن دستی فشردهسازی نباشید! 👍
```csharp
// Startup.cs
public void Configure(IApplicationBuilder app)
{
app.UseRequestDecompression();
// ...
}
```
به همین سادگی!
#dotnet #middleware
https://t.me/dotnet7ir
Middleware مربوط به Decompression اینجاست تا Requestهای فشرده (Gzip, Brotli) رو براتون باز کنه. 📦
دیگه نگران هندل کردن دستی فشردهسازی نباشید! 👍
```csharp
// Startup.cs
public void Configure(IApplicationBuilder app)
{
app.UseRequestDecompression();
// ...
}
```
به همین سادگی!
#dotnet #middleware
https://t.me/dotnet7ir
Nullable annotation در constraintهای generic، امکان تعیین nullability نوع T رو فراهم میکنه. 🤔
```csharp
// T? : T میتونه nullable باشه
// T : T نمیتونه nullable باشه
public class MyClass<T> where T : class? { ... }
```
اینطوری میشه مشخص کرد که یک generic type parameter میتونه null بپذیره یا نه. ✅ این کار به جلوگیری از خطاهای احتمالی null reference کمک میکنه. 👌
https://t.me/csharp7
```csharp
// T? : T میتونه nullable باشه
// T : T نمیتونه nullable باشه
public class MyClass<T> where T : class? { ... }
```
اینطوری میشه مشخص کرد که یک generic type parameter میتونه null بپذیره یا نه. ✅ این کار به جلوگیری از خطاهای احتمالی null reference کمک میکنه. 👌
https://t.me/csharp7