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

آیدی ادمین:
@ma_limbs
Download Telegram
🔵 کوییز #سی_شارپ

🟣 موضوع : ‏تعریف ثابت‌ها (const) و متغیرهای readonly

🟢 سوال :

‏تفاوت اصلی بین const و readonly چیست؟

گزینه ۱:
‏سرعت اجرا

گزینه ۲:
‏زمان مقداردهی و قابلیت تغییر مقدار

گزینه ۳:
‏حجم کد

گزینه ۴:
‏پیچیدگی کد

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

🟢 توضیح :

‏const در زمان کامپایل مقداردهی می‌شود و غیرقابل تغییر است، در حالی که readonly در زمان تعریف یا سازنده کلاس مقداردهی می‌شود و فقط یک بار قابل تغییر است.

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

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

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

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

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

https://t.me/addlist/hK74E7joz0ZiOGY0
https://t.me/addlist/hK74E7joz0ZiOGY0
https://t.me/addlist/hK74E7joz0ZiOGY0
‏قابلیت Default Interface Methods در C# ۸، امکان تعریف متدهایی با بدنه (implementation) در اینترفیس‌ها را فراهم می‌کند. 💡

‏این قابلیت به شما اجازه می‌دهد تا بدون ایجاد تغییرات breaking در کلاس‌های پیاده‌سازی‌کننده اینترفیس، متدهای جدیدی را به اینترفیس اضافه کنید.

‏به این ترتیب، کلاس‌هایی که این اینترفیس را پیاده‌سازی کرده‌اند، مجبور به پیاده‌سازی متد جدید نیستند، مگر اینکه رفتار پیش‌فرض متد را نخواهند.

https://t.me/csharp7
📌 تفاوت `IQueryable` و `IEnumerable` در C#

‏`IEnumerable` داده‌ها رو در حافظه بارگذاری و بعد فیلتر می‌کنه. اما `IQueryable` فیلتر رو به منبع داده (مثلاً دیتابیس) منتقل می‌کنه و فقط داده‌های مورد نیاز رو میاره.

نتیجه: `IQueryable` برای کار با داده‌های بزرگ بهینه‌تره چون سربار کمتری داره.

💻 💽

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

🟣 موضوع : ‏تگ‌های ردیف (TR) و ستون (TD, TH)

🟢 سوال :

‏تگ <tr> در داخل تگ <table> برای چه منظوری استفاده می‌شود؟

گزینه ۱:
‏برای تعریف یک سلول داده در جدول

گزینه ۲:
‏برای تعریف یک ردیف در جدول

گزینه ۳:
‏برای تعریف عنوان جدول

گزینه ۴:
‏برای گروه‌بندی ستون‌های جدول



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

🟢 توضیح :

‏تگ <tr> (table row) برای تعریف یک ردیف در داخل یک جدول HTML استفاده می‌شود. سلول‌های داده (<td>) و سربرگ‌های ستون (<th>) در داخل تگ‌های <tr> قرار می‌گیرند.

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

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

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

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

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

https://t.me/addlist/hK74E7joz0ZiOGY0
https://t.me/addlist/hK74E7joz0ZiOGY0
https://t.me/addlist/hK74E7joz0ZiOGY0
‏نوع داده bool در C# فقط دو مقدار ممکن را می‌پذیرد: true و false. این نوع داده برای نمایش وضعیت‌های منطقی مانند درست/نادرست، فعال/غیرفعال یا روشن/خاموش استفاده می‌شود.

‏کاربرد اصلی bool در دستورات شرطی و حلقه‌ها است. برای مثال، می‌توانید از یک متغیر بولی برای کنترل اجرای بخشی از کد استفاده کنید:

bool isUserLoggedIn = false;

if (isUserLoggedIn)
{
‏ Console.WriteLine("به داشبورد خوش آمدید!");
}
else
{
‏ Console.WriteLine("لطفاً وارد شوید.");
}


‏در این مثال، اگر isUserLoggedIn برابر با true باشد، پیام اول نمایش داده می‌شود، در غیر این صورت پیام دوم. 💡Boolean منطق برنامه را ساده‌تر می‌کند.

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

🟣 موضوع : ‏مدیریت پیکربندی برنامه با فایل‌های App.config/Web.config

🟢 سوال :

‏کدام یک از موارد زیر یک کاربرد پیشرفته فایل‌های App.config/Web.config است؟

گزینه ۱:
‏مدیریت حافظه

گزینه ۲:
‏ذخیره تنظیمات سفارشی برای ماژول‌های مختلف برنامه

گزینه ۳:
‏محاسبات ریاضی ساده

گزینه ۴:
‏ایجاد رابط کاربری استاتیک

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

🟢 توضیح :

‏ذخیره تنظیمات سفارشی برای ماژول‌های مختلف برنامه، یک کاربرد پیشرفته فایل‌های App.config/Web.config است.

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

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

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

آدرس وبسایت:
https://Tutorial24.ir
🔵 کوییز #سی_شارپ

🟣 موضوع : ‏استفاده از اعضای static در کلاس‌ها

🟢 سوال :

‏کدام یک از موارد زیر یک روش برای دسترسی به یک عضو static است؟

گزینه ۱:
‏استفاده از نمونه کلاس

گزینه ۲:
‏استفاده از نام کلاس

گزینه ۳:
‏استفاده از متغیرهای سراسری

گزینه ۴:
‏استفاده از توابع بازگشتی

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

🟢 توضیح :

‏اعضای static با استفاده از نام کلاس قابل دسترسی هستند.

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

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

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

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

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

https://t.me/addlist/hK74E7joz0ZiOGY0
https://t.me/addlist/hK74E7joz0ZiOGY0
https://t.me/addlist/hK74E7joz0ZiOGY0
‏در C#، کلاس‌ها نقش الگوی اولیه برای ساخت اشیاء را ایفا می‌کنند. کلاس مانند یک طرح کلی، شامل خصوصیات (فیلدها) و رفتارها (متدها) است که اشیاء از آن ساخته می‌شوند.

‏شی (Object) نمونه‌ای از یک کلاس است. هر شی دارای وضعیت (مقادیر فیلدها) و رفتارهای مشخص خود است که از کلاس والد به ارث برده است.

‏برای تعریف یک کلاس در C# از کلمه کلیدی `class` استفاده می‌کنیم. مثال:

```csharp
public class Person
{
‏ public string Name; // فیلد
‏ public int Age; // فیلد

‏ public void Introduce() // متد
{
Console.WriteLine($"My name is {Name} and I am {Age} years old.");
}
}
```

‏سپس می‌توانیم از این کلاس، شی بسازیم:

```csharp
Person person1 = new Person();
person1.Name = "Ali";
person1.Age = 30;
person1.Introduce();
```

‏این تفاوت اساسی بین مفهوم کلی کلاس و نمونه کاربردی آن یعنی شی است. 🧑‍💻💡

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

🟣 موضوع : ‏تعریف کلاس‌های انتزاعی (Abstract Classes)

🟢 سوال :

‏کدام یک از موارد زیر یک عیب استفاده از کلاس‌های انتزاعی است؟

گزینه ۱:
‏کاهش کارایی

گزینه ۲:
‏افزایش حجم کد

گزینه ۳:
‏محدودیت در ارث‌بری چندگانه

گزینه ۴:
‏افزایش پیچیدگی کد

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

🟢 توضیح :

‏کلاس‌های انتزاعی از ارث‌بری چندگانه پشتیبانی نمی‌کنند.

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

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

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

آدرس وبسایت:
https://Tutorial24.ir
‏برای راه‌اندازی و پیکربندی DbContext در ASP.NET Core، ابتدا نیاز به نصب بسته NuGet مربوط به Entity Framework Core و Provider دیتابیس مورد نظر (مانند SQL Server، PostgreSQL و ...) دارید.

‏سپس، کلاس DbContext خود را تعریف کنید و تنظیمات مربوط به اتصال به دیتابیس را در متد OnConfiguring یا از طریق Startup.cs (یا Program.cs در .NET 6+) پیکربندی نمایید.

‏مثال پیکربندی در Startup.cs (برای .NET 5 و نسخه‌های قدیمی‌تر):

public void ConfigureServices(IServiceCollection services)
{
‏ // ... سایر سرویس‌ها ...

services.AddDbContext<MyDbContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));

// ...
}


‏مثال پیکربندی در Program.cs (برای .NET 6 و نسخه‌های جدیدتر):

var builder = WebApplication.CreateBuilder(args);

// Add services to the container.
builder.Services.AddControllersWithViews();

builder.Services.AddDbContext<MyDbContext>(options =>
options.UseSqlServer(builder.Configuration.GetConnectionString("DefaultConnection")));

var app = builder.Build();

‏// ... سایر تنظیمات ...

app.Run();


‏در این مثال، MyDbContext نام کلاس DbContext شماست و DefaultConnection نام رشته اتصال در فایل appsettings.json است.

‏فایل appsettings.json:

{
"ConnectionStrings": {
"DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=MyDatabase;Trusted_Connection=True;"
},
// ...
}


‏این تنظیمات به Entity Framework Core امکان می‌دهد تا اتصال لازم به دیتابیس را برقرار کرده و عملیات CRUD را انجام دهد. ⚙️💾

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

🟣 موضوع : ‏بررسی مفاهیم Default Interface Methods

🟢 سوال :

‏هدف اصلی Default Interface Methods چیست؟

گزینه ۱:
‏مدیریت حافظه

گزینه ۲:
‏افزایش قابلیت توسعه رابط‌ها بدون شکستن کد موجود

گزینه ۳:
‏مدیریت پایگاه داده

گزینه ۴:
‏ایجاد رابط کاربری گرافیکی

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

🟢 توضیح :

‏هدف اصلی Default Interface Methods، افزایش قابلیت توسعه رابط‌ها بدون شکستن کد موجود است.

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

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

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

آدرس وبسایت:
https://Tutorial24.ir
💡 کامپایلر C# می‌تونه بعضی از کوئری‌های LINQ رو در زمان کامپایل بهینه کنه.

🔍 اگه از LINQ روی آرایه‌ها یا لیست‌های ثابت استفاده کنی، کامپایلر ممکنه کل کوئری رو ارزیابی و نتیجه رو مستقیماً در کد قرار بده!

🚀 این بهینه‌سازی باعث افزایش سرعت اجرا و کاهش سربار در زمان اجرا می‌شه.

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

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

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

🟣 موضوع : ‏کار با Attributes و ایجاد Attributeهای سفارشی

🟢 سوال :

‏Attribute چیست؟

گزینه ۱:
‏یک روش برای مدیریت حافظه

گزینه ۲:
‏یک راه برای افزودن فراداده (Metadata) به کد

گزینه ۳:
‏یک روش برای مدیریت پایگاه داده

گزینه ۴:
‏یک روش برای ایجاد رابط کاربری گرافیکی

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

🟢 توضیح :

‏Attribute راهی برای افزودن فراداده (Metadata) به کد است.

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

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

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

آدرس وبسایت:
https://Tutorial24.ir
‏ویژگی Conditional#C، روشی برای حذف فراخوانی متدها در زمان کامپایل است. ⚙️

‏کافیست این ویژگی را بالای تعریف متد قرار دهید و یک شناسه (identifier) به آن پاس دهید.

```csharp
[Conditional("DEBUG")]
void Log(string message) { ... }
```

‏حالا اگر کامپایلر، شناسه DEBUG را پیدا نکند، تمام فراخوانی‌های `Log` حذف می‌شوند. 🗑️ این کار، حجم نهایی برنامه را کاهش می‌دهد.

https://t.me/csharp7
‏در سی‌شارپ، رابط‌ها (Interfaces) قراردادهایی هستند که رفتار یک کلاس را تعریف می‌کنند، اما پیاده‌سازی آن را به عهده کلاس‌های دیگر می‌گذارند. هدف اصلی رابط‌ها، کاهش وابستگی بین کلاس‌ها و افزایش انعطاف‌پذیری کد است.

‏با استفاده از رابط‌ها، می‌توانید اطمینان حاصل کنید که کلاس‌های مختلف، متدهای مشخصی را با امضای یکسان پیاده‌سازی می‌کنند، حتی اگر منطق داخلی آن‌ها کاملاً متفاوت باشد. این رویکرد، امکان پلی‌مورفیسم را به شکل قدرتمندی فراهم می‌کند و به شما اجازه می‌دهد تا کدی بنویسید که بتواند با انواع مختلفی از اشیاء که یک رابط مشترک را پیاده‌سازی می‌کنند، کار کند. 💡

‏به طور خلاصه، رابط‌ها به طراحی ماژولار و قابلیت نگهداری بهتر کد کمک می‌کنند. 🚀

‏// مثال یک رابط در سی‌شارپ
public interface ILogger
{
void LogMessage(string message);
}

‏// مثالی از کلاسی که رابط را پیاده‌سازی می‌کند
public class ConsoleLogger : ILogger
{
public void LogMessage(string message)
{
Console.WriteLine($"[Console] {message}");
}
}



https://t.me/csharp7
‏Keyed DI در C#‎، امکان تعیین کلید برای سرویس‌ها در Container را فراهم می‌کند.🔑 با این روش، بجای نوع (Type)، با یک کلید (Key) مشخص می‌توان به پیاده‌سازی‌های مختلف یک Interface دسترسی داشت.

‏مزیتش چیه؟ 🤔 فرض کنید چند پیاده‌سازی از یک Interface دارید (مثلاً `IReportGenerator`). با Keyed DI، می‌توانید هر پیاده‌سازی را با یک کلید خاص ثبت کنید ("PDF"، "Excel") و در زمان نیاز، پیاده‌سازی مورد نظر را با کلیدش فراخوانی کنید. ⚙️

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

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

https://t.me/addlist/hK74E7joz0ZiOGY0
https://t.me/addlist/hK74E7joz0ZiOGY0
https://t.me/addlist/hK74E7joz0ZiOGY0