آموزش C# و .Net
1.56K subscribers
435 photos
325 videos
19 files
2.81K links
تعرفه تبلیغات :
https://t.me/+w-o6dHW5O31jMWNk

آیدی ادمین:
@ma_limbs
Download Telegram
‏در C#، بهینه‌سازی حلقه‌ها می‌تواند به طور قابل توجهی مصرف منابع و زمان اجرا را کاهش دهد.

‏یکی از روش‌های رایج، کاهش تکرار شرط‌ها است. اگر شرط یک حلقه در طول اجرای آن تغییر نمی‌کند، آن را خارج از حلقه قرار دهید تا از محاسبه مکرر آن جلوگیری شود.

‏مثال:

‏// قبل از بهینه‌سازی
for (int i = 0; i < n; i++)
{
‏ if (condition) // شرطی که همیشه یکسان است
{
‏ // عملیات
}
}

‏// پس از بهینه‌سازی
if (condition)
{
for (int i = 0; i < n; i++)
{
‏ // عملیات
}
}


‏همچنین، استفاده از حلقه‌های مناسب برای کار مورد نظر مهم است. برای مثال، در مواردی که تعداد تکرار مشخص است، for معمولاً کارآمدتر از while است. در سناریوهایی که نیاز به پیمایش مجموعه داده‌ها دارید، استفاده از foreach خوانایی را افزایش داده و اغلب بهینه است، زیرا مدیریت ایندکس را بر عهده می‌گیرد.

‏به یاد داشته باشید که تلاش بیش از حد برای بهینه‌سازی در مواردی که تاثیر ناچیزی دارد، می‌تواند خوانایی کد را کاهش دهد. همیشه ابتدا به خوانایی و سپس به بهینه‌سازی فکر کنید. 🚀💡

https://t.me/csharp7
‏در توسعه وب با ASP.NET Core، استفاده از فریم‌ورک‌های تست مانند xUnit، NUnit و MSTest برای اطمینان از کیفیت و پایداری کد بسیار حیاتی است. این فریم‌ورک‌ها ابزارهایی قدرتمند برای نوشتن، اجرا و مدیریت تست‌های واحد (Unit Tests) و تست‌های یکپارچه‌سازی (Integration Tests) ارائه می‌دهند.

‏xUnit به دلیل انعطاف‌پذیری بالا و پشتیبانی از ویژگی‌های مدرن زبان C#، محبوبیت فراوانی کسب کرده است. این فریم‌ورک به شما اجازه می‌دهد تا تست‌های خود را با ساختار دلخواه سازماندهی کنید و از قابلیت‌های پیشرفته‌ای مانند پارامتری کردن تست‌ها (Parameterized Tests) بهره‌مند شوید.

‏NUnit یکی از قدیمی‌ترین و شناخته‌شده‌ترین فریم‌ورک‌های تست در اکوسیستم دات‌نت است. این فریم‌ورک با ارائه مجموعه‌ای جامع از ویژگی‌ها و قابلیت‌ها، به توسعه‌دهندگان کمک می‌کند تا تست‌های قوی و قابل اعتمادی بنویسند.

‏MSTest که بخشی از Visual Studio است، گزینه‌ای دیگر برای تست‌نویسی در پروژه‌های ASP.NET Core محسوب می‌شود. این فریم‌ورک به طور پیش‌فرض با Visual Studio ادغام شده و استفاده از آن را برای توسعه‌دهندگان این محیط ساده‌تر می‌کند.

‏انتخاب فریم‌ورک مناسب بستگی به نیازهای پروژه، ترجیحات تیم و آشنایی با ابزارها دارد. اما مهم‌ترین نکته، تعهد به نوشتن تست‌های خودکار برای افزایش اطمینان از صحت عملکرد برنامه و تسهیل فرآیند توسعه و نگهداری است. 🚀🧪

‏// مثال ساده‌ای از یک تست واحد با xUnit
public class CalculatorTests
{
[Fact]
public void Add_TwoNumbers_ReturnsSum()
{
// Arrange
var calculator = new Calculator();

// Act
var result = calculator.Add(2, 3);

// Assert
Assert.Equal(5, result);
}
}


https://t.me/csharp7
🔵 کوییز #HTML

🟣 موضوع : ‏استفاده از Data Attributes

🟢 سوال :

‏آیا Data Attributes بر سئو (بهینه‌سازی موتور جستجو) تأثیر مستقیم دارند؟

گزینه ۱:
‏بله، موتورهای جستجو از این داده‌ها برای درک بهتر محتوا استفاده می‌کنند

گزینه ۲:
‏خیر، Data Attributes برای استفاده توسط جاوااسکریپت و CSS در سمت کلاینت در نظر گرفته شده‌اند و تأثیر مستقیمی بر سئو ندارند

گزینه ۳:
‏فقط در صورتی که حاوی کلمات کلیدی باشند تأثیر دارند

گزینه ۴:
‏بستگی به نحوه استفاده از آن‌ها دارد



🔵 گزینه صحیح: 2

🟢 توضیح :

‏خیر، Data Attributes به طور خاص برای ذخیره داده‌های سفارشی مرتبط با عناصر HTML برای استفاده در سمت کلاینت (به ویژه توسط جاوااسکریپت و CSS) طراحی شده‌اند و موتورهای جستجو معمولاً این ویژگی‌ها را به طور مستقیم برای درک محتوای صفحه در نظر نمی‌گیرند. سئو بیشتر به محتوای متنی، ساختار معنایی HTML و فراداده‌های خاص متکی است.

ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

لطفا ما رو به دیگران هم معرفی کنید...

آدرس کانال اصلی :
https://t.me/Tu_24

آدرس وبسایت:
https://Tutorial24.ir
🔵 کوییز #مفاهیم_کلی_برنامه_نویسی

🟣 موضوع : ‏تاریخچه برنامه‌نویسی: تکامل زبان‌ها و محیط‌های برنامه‌نویسی

🟢 سوال :

‏اولین زبان برنامه‌نویسی سطح بالا چه نام داشت؟

گزینه ۱:
‏اسمبلی (Assembly)

گزینه ۲:
‏فرترن (FORTRAN)

گزینه ۳:
‏سی (C)

گزینه ۴:
‏پایتون (Python)



🔵 گزینه صحیح: 2

🟢 توضیح :

‏فرترن (FORTRAN) اولین زبان برنامه‌نویسی سطح بالا بود که در دهه 1950 توسعه یافت.

ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

لطفا ما رو به دیگران هم معرفی کنید...

آدرس کانال اصلی :
https://t.me/Tu_24

آدرس وبسایت:
https://Tutorial24.ir
‏در C#‎ برای چک کردن وجود یک Flag در Enum، دو راه دارید:

1️⃣ `Enum.HasFlag()` (خوانایی بیشتر)
2️⃣ عملگرهای Bitwise (سرعت بیشتر)

🤔 انتخاب با شماست!

💡 اگر performance بحرانی است، سراغ Bitwise بروید. در غیر این صورت، `HasFlag()` کد شما را خواناتر می‌کند.

#Csharp #Enum

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
‏Nullable بودن آرگومان‌ها و مقادیر بازگشتی در توابع public API، قرارداد شما با مصرف‌کننده کد است.

‏اگر آرگومان nullable باشد، یعنی مقدار null را می‌پذیرید. اگر مقدار بازگشتی nullable باشد، یعنی احتمال دارد null برگردانید.

‏این قرارداد را دقیق رعایت کنید. ⚠️ در غیر این صورت، با NullReferenceException مواجه خواهید شد. 💣

‏بهترین حالت این است که از ابتدا nullable بودن را در نظر بگیرید.

https://t.me/csharp7
‏آرگ‌پارس (Argparse) چیه؟ 🤔

‏یه ماژول پایتون برای ساخت رابط خط فرمان (CLI) حرفه‌ای!

‏باهاش می‌تونی ورودی‌های دستوری رو مدیریت کنی و برنامه‌هات رو انعطاف‌پذیرتر کنی.

‏دیگه نیازی نیست نگران ورودی‌های اشتباه باشی! 🤩

‏آموزش کامل و مثال‌های کاربردی در این لینک: [لینک به آموزش] 🐍

#پایتون #آموزش #برنامه_نویسی

https://t.me/python7ir
‏دانستنی C#‎:

‏تابع‌های Static Local از C# 8 به بعد معرفی شدند. ⚙️ این توابع نمی‌تونن متغیرهای محلیِ تابعِ والد رو захватить کنن. این یعنی از باگ‌های احتمالی جلوگیری می‌شه و کد قابل پیش‌بینی‌تر می‌شه. 🛡️

‏استفاده:

```csharp
void MyMethod()
{
int y = 5;
‏ static int Add(int x) => x + 1; // y قابل دسترسی نیست
}
```

https://t.me/csharp7
🔵 با عضویت در لیست تلگرامی جامع آموزش زبان زیر عضو بی نظیرترین‌ و کامل ترین مجموعه آموزش زبان انگلیسی تلگرامی شوید:

🟢 پادکست، کوییز، گرامر، آیلتس، تافل، ویدیو، آموزش زبان به کودکان، اصطلاحات انگلیسی، زبان کنکور و ... :

https://t.me/addlist/hK74E7joz0ZiOGY0
https://t.me/addlist/hK74E7joz0ZiOGY0
https://t.me/addlist/hK74E7joz0ZiOGY0
This media is not supported in your browser
VIEW IN TELEGRAM
🔵 C# Beginners Tutorial - 97 - Opening Files With Your App

🟢 کیفیت : متوسط

🔴 توجه کنید با تنظیمات خود تلگرام می توانید حجم و کیفیت ویدیو را بر اساس سرعت اینترنت خود تنظیم نمایید.

🟣 C# Beginners Tutorials Playlist

🟢 زبان آموزش: انگلیسی


ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

لطفا ما رو به دیگران هم معرفی کنید...

آدرس کانال اصلی :
https://t.me/Tu_24

آدرس وبسایت:
https://Tutorial24.ir
🔵 دوست داری برنامه نویس حرفه ای بشی یا مهارت های کامپیوتری خودت رو افزایش بدی؟ با عضویت در لیست تلگرامی زیر در بی نظیر ترین کانال های برنامه نویسی ما عضو شوید:

🟢 پایتون، هوش مصنوعی، یادگیری ماشین، سی ++، سی شارپ، دات نت، نود جی اس، جاوا اسکریپت، شبکه، علم داده، پایگاه داده، sql، nosql ، مهارت های ICDL، سیستم عامل، لینوکس، فتوشاپ، گرافیک، اندروید، جاوا، ساخت اپلیکیشن موبایل، ری اکت، جی کوئری، php و laravel، دروس رشته کامپیوتر، کنکور کامپیوتر و ...

عضو لیست جامع شوید:

https://t.me/addlist/_UjG99eD_E4zYzhk
https://t.me/addlist/_UjG99eD_E4zYzhk
https://t.me/addlist/_UjG99eD_E4zYzhk
‏در ASP.NET Core، برای دریافت داده از Query String دو روش وجود دارد:

‏* `[FromQuery]` : برای پارامترهای ساده مانند `id` یا `page` استفاده می‌شود.

‏* Model Binding: برای انتقال مجموعه‌ای از داده‌ها به یک کلاس (DTO) کاربرد دارد. فریم‌ورک به صورت خودکار مقادیر را از Query String به پراپرتی‌های کلاس تخصیص می‌دهد. ⚙️📚

https://t.me/csharp7
‏enumerate() پایتون یادت نره! 😉

‏باهاش هم ایندکس داری، هم مقدار!

```python
my_list = ["a", "b", "c"]
for index, value in enumerate(my_list):
‏ print(f"ایندکس: {index}, مقدار: {value}")
```

‏خیلی به کارت میاد تو حلقه ها! 🚀😎
#پایتون #برنامه_نویسی

https://t.me/python7ir
🔵 کوییز #HTML

🟣 موضوع : ‏معرفی تگ‌های HTML5

🟢 سوال :

‏کدام تگ HTML5 برای مشخص کردن محتوای اصلی و مهم یک سند استفاده می‌شود؟

گزینه ۱:
<header>

گزینه ۲:
<footer>

گزینه ۳:
<main>

گزینه ۴:
<section>



🔵 گزینه صحیح: 3

🟢 توضیح :

‏تگ <main> یک تگ معنایی جدید در HTML5 است که برای مشخص کردن محتوای اصلی و غالب یک سند استفاده می‌شود. محتوای تکراری مانند هدر، فوتر و سایدبار نباید درون این تگ قرار بگیرند.

ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

لطفا ما رو به دیگران هم معرفی کنید...

آدرس کانال اصلی :
https://t.me/Tu_24

آدرس وبسایت:
https://Tutorial24.ir
🔵 با عضویت در لیست تلگرامی جامع آموزش زبان زیر عضو بی نظیرترین‌ و کامل ترین مجموعه آموزش زبان انگلیسی تلگرامی شوید:

🟢 پادکست، کوییز، گرامر، آیلتس، تافل، ویدیو، آموزش زبان به کودکان، اصطلاحات انگلیسی، زبان کنکور و ... :

https://t.me/addlist/hK74E7joz0ZiOGY0
https://t.me/addlist/hK74E7joz0ZiOGY0
https://t.me/addlist/hK74E7joz0ZiOGY0
🤔 فرق Records و Classes در #C#.NET چیه؟

‏Records برای نگهداری *داده* 💾 و Classes برای *رفتار* ⚙️ طراحی شدن.

‏Records immutable (تغییرناپذیر) هستن و Value-Based Equality دارن (مقایسه بر اساس مقدار). Classes mutable (تغییرپذیر) و Reference-Based Equality (مقایسه بر اساس آدرس حافظه).

‏کد کمتر، عملکرد بهتر! 👍

https://t.me/dotnet7ir
🔵 کوییز #سی_شارپ

🟣 موضوع : ‏نکات بهینه‌سازی و بهبود عملکرد در C#

🟢 سوال :

‏کدام یک از موارد زیر یک روش برای بهبود عملکرد LINQ در C# است؟

گزینه ۱:
‏استفاده از متد ToList()

گزینه ۲:
‏استفاده از متد ToArray()

گزینه ۳:
‏استفاده از متد AsParallel()

گزینه ۴:
‏استفاده از متد ToDictionary()

🔵 گزینه صحیح: 3

🟢 توضیح :

‏AsParallel() پرس و جوهای LINQ را به صورت موازی اجرا می‌کند.

ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

لطفا ما رو به دیگران هم معرفی کنید...

آدرس کانال اصلی :
https://t.me/Tu_24

آدرس وبسایت:
https://Tutorial24.ir
🔵 دوست داری برنامه نویس حرفه ای بشی یا مهارت های کامپیوتری خودت رو افزایش بدی؟ با عضویت در لیست تلگرامی زیر در بی نظیر ترین کانال های برنامه نویسی ما عضو شوید:

🟢 پایتون، هوش مصنوعی، یادگیری ماشین، سی ++، سی شارپ، دات نت، نود جی اس، جاوا اسکریپت، شبکه، علم داده، پایگاه داده، sql، nosql ، مهارت های ICDL، سیستم عامل، لینوکس، فتوشاپ، گرافیک، اندروید، جاوا، ساخت اپلیکیشن موبایل، ری اکت، جی کوئری، php و laravel، دروس رشته کامپیوتر، کنکور کامپیوتر و ...

عضو لیست جامع شوید:

https://t.me/addlist/_UjG99eD_E4zYzhk
https://t.me/addlist/_UjG99eD_E4zYzhk
https://t.me/addlist/_UjG99eD_E4zYzhk
🔵 با عضویت در لیست تلگرامی جامع آموزش زبان زیر عضو بی نظیرترین‌ و کامل ترین مجموعه آموزش زبان انگلیسی تلگرامی شوید:

🟢 پادکست، کوییز، گرامر، آیلتس، تافل، ویدیو، آموزش زبان به کودکان، اصطلاحات انگلیسی، زبان کنکور و ... :

https://t.me/addlist/hK74E7joz0ZiOGY0
https://t.me/addlist/hK74E7joz0ZiOGY0
https://t.me/addlist/hK74E7joz0ZiOGY0
‏در #C با TypedResults خروجی API رو مشخص کن.

‏قبلاً IActionResult بود، الان TypedResults.Ok() یا TypedResults.NotFound() رو مستقیم return کن. کد خواناتره! 👌

‏اینطوری:
```csharp
app.MapGet("/users/{id}", (int id) =>
{
var user = GetUser(id);
return user is not null ? TypedResults.Ok(user) : TypedResults.NotFound();
});
```

‏حتی میشه StatusCode هم برگردوند. 😎

‏دیگه cast کردن و اینا هم لازم نیست. 😉

https://t.me/csharp7