🧠 مفاهیم پایه #C
1️⃣ ءBoxing چیست، چه زمانی بهصورت ضمنی (Implicit) اتفاق میافتد و چه هزینهای دارد؟
2️⃣ چرا زمانی که یک struct یک interface را پیادهسازی میکند، Boxing رخ میدهد؟
3️⃣ء ref struct چیست و چه محدودیتهایی دارد؟
4️⃣ تفاوت record struct و record class از نظر رفتار (Semantics) و Performance چیست؟
5️⃣ اگر Equals را Override کنید اما GetHashCode را Override نکنید، چه مشکلاتی به وجود میآید؟
6️⃣ چرا عملگر == برای متغیرهای string با متغیرهایی از نوع object که رشته را نگه میدارند، رفتار متفاوتی دارد؟
7️⃣ ءString Interning چیست و در چه شرایطی دو رشته با محتوای یکسان از نظر Reference برابر نیستند؟
8️⃣ تفاوت float، double و decimal چیست و برای محاسبات مالی از کدام باید استفاده کرد؟
9️⃣ تفاوت DateTime، DateTimeOffset، DateOnly و TimeOnly چیست؟
⚙️ CLR و Generics
🔟 ءJIT چگونه کدهای Generic را برای Value Typeها و Reference Typeها بهینهسازی (Specialize) میکند؟
1️⃣1️⃣ ءCovariance و Contravariance در Genericها را توضیح دهید.
2️⃣1️⃣ چرا آرایهها (Arrays) در #C دارای Covariance هستند؟
3️⃣1️⃣ اعضای static abstract در Interfaceها چیستند و چه کاربردی دارند؟
🚀 Async و Threading
4️⃣1️⃣ آیا استفاده از async یک Thread جدید ایجاد میکند؟ هنگام رسیدن به await دقیقاً چه اتفاقی میافتد؟
5️⃣1️⃣ کامپایلر برای یک متد async چه State Machineای تولید میکند؟
6️⃣1️⃣ تفاوت Task و <ValueTask<T چیست؟
7️⃣1️⃣ چرا استفاده از async void خطرناک است؟
8️⃣1️⃣ چرا فراخوانی Result. یا ()Wait. در محیطی که SynchronizationContext دارد، میتواند باعث Deadlock شود؟
9️⃣1️⃣ ءConfigureAwait(false) دقیقاً چه کاری انجام میدهد؟
0️⃣2️⃣ هزینه واقعی استفاده از Task.Run در یک برنامه سمت سرور چیست؟
1️⃣2️⃣ ءThread Pool Starvation چیست و چگونه آن را تشخیص میدهید؟
2️⃣2️⃣ چگونه باید از CancellationToken بهدرستی استفاده کرد؟
3️⃣2️⃣ مدیریت Exception در Task.WhenAll چه تفاوتی با یک await معمولی دارد؟
4️⃣2️⃣ کلمه کلیدی lock به چه چیزی کامپایل میشود و System.Threading.Lock در C# 13 چه بهبودهایی ارائه میدهد؟
5️⃣2️⃣ کلمه کلیدی volatile چه تضمینهایی ارائه میدهد و در چه شرایطی باید به جای آن از Interlocked استفاده کرد؟
6️⃣2️⃣ چه زمانی باید از <Channel<T به جای <BlockingCollection<T استفاده کرد؟
7️⃣2️⃣ تفاوت <AsyncLocal<T و <ThreadLocal<T چیست؟
🧹 مدیریت حافظه (Memory Management)
8️⃣2️⃣ نسلهای مختلف Garbage Collector (GC Generations) و مفهوم Object Promotion را توضیح دهید. چرا جمعآوری نسل دوم (Gen 2) پرهزینه است؟
9️⃣2️⃣ ءLarge Object Heap (LOH) چیست و چرا برای سرویسهای Long-Running اهمیت دارد؟
0️⃣3️⃣ وجود Finalizer چه تأثیری بر طول عمر یک شیء دارد و چرا در متد Dispose از GC.SuppressFinalize استفاده میشود؟
1️⃣3️⃣ تفاوت Workstation GC و Server GC چیست؟
2️⃣3️⃣ ء<Span<T چه مشکلی را حل میکند و در چه شرایطی باعث حذف Allocationها میشود؟
3️⃣3️⃣ چه زمانی باید از <ArrayPool<T استفاده کرد؟
4️⃣3️⃣ ءClosureها چگونه متغیرها را Capture میکنند؟
5️⃣3️⃣ ءDeferred Execution در LINQ چیست؟
6️⃣3️⃣ ءNative AOT چه مزایایی ارائه میدهد و چه قابلیتهایی را پشتیبانی نمیکند؟