📌 200+ سوال مصاحبه واقعی (بخش 2️⃣)
[ BUCKET 1 — C# AND .NET ]
⚠️ فصل ۱۱ — مدیریت خطا در #C (۳ سؤال)
5️⃣3️⃣ تفاوت بین throw ex و throw داخل یک catch block چیست؟ ⚠️
6️⃣3️⃣ هزینهی Throw کردن Exception در NET. چقدر است و چرا نباید از Exceptionها برای Control Flow استفاده کنیم؟ 🚨
7️⃣3️⃣ وقتی یک Exception رخ میدهد، CLR چگونه Stack را Unwind میکند؟ و JIT در مرزهای try/catch چه کاری انجام میدهد؟ 🧠⚙️
⚡️ فصل ۱۲ — Async/Await و Taskها (۶ سؤال)
8️⃣3️⃣ تفاوت بین Task و ValueTask چیست و هرکدام را چه زمانی باید استفاده کنیم؟ ⚡️
9️⃣3️⃣ هدف ConfigureAwait(false) چیست و چه زمانی باید از آن استفاده کنیم؟ 🔄
0️⃣4️⃣ ءCompiler برای یک متد async چه State Machineای تولید میکند؟ این State Machine چه چیزهایی را Allocate میکند؟ 🧠
1️⃣4️⃣ ءSynchronizationContext چیست و چگونه روی Resume شدن یک await تأثیر میگذارد؟ 🔄
2️⃣4️⃣ تفاوت async void و async Task چیست و چرا async void خطرناک است؟ ⚠️
3️⃣4️⃣ چرا وقتی در Contextی که SynchronizationContext دارد روی یک Task از .Result یا .Wait() استفاده میکنیم، ممکن است Deadlock رخ دهد؟ 🔒
🧵 فصل ۱۳ — Threading و Synchronization (۴ سؤال)
4️⃣4️⃣ ءlock چیست و به چه چیزی Compile میشود؟ 🔐
5️⃣4️⃣ شیء جدید Lock در C# 13 چیست و چگونه نسبت به Lock کردن روی یک Object دلخواه بهتر عمل میکند؟ 🆕🔒
6️⃣4️⃣ ء<Channel<T در NET. چیست و در مقایسه با <BlockingCollection<T چه سناریوهایی را حل میکند؟ 📡
7️⃣4️⃣ وقتی Threadهای ThreadPool به دلیل sync-over-async یا Blocking روی عملیات I/O دچار Starvation شوند چه اتفاقی میافتد؟ چگونه آن را Diagnose میکنید؟ 🚨🧵
🧠 فصل ۱۴ — مدیریت حافظه و GC (۵ سؤال)
8️⃣4️⃣ ءGenerationهای 0، 1 و 2 در GC را توضیح دهید. Objectها چگونه بین این Generationها Promote میشوند؟ ♻️
9️⃣4️⃣ ءLarge Object Heap (LOH) چیست و چرا برای Performance اهمیت دارد؟ 🧠📦
0️⃣5️⃣ تفاوت Workstation GC و Server GC چیست؟ 🖥⚙️
1️⃣5️⃣ ءDispose Pattern چیست و چرا شامل Dispose(bool disposing) است؟ 🗑
2️⃣5️⃣ چگونه یک Memory Leak را در یک برنامهی NET. پیدا و Diagnose میکنید؟ از چه ابزارهایی استفاده میکنید؟ 🔍🧠
🔎 فصل ۱۵ — Reflection و Dynamic (۲ سؤال)
3️⃣5️⃣ هزینهی Performance مربوط به Reflection چیست و چگونه میتوان نتایج Reflection را Cache کرد؟ 🔍⚡️
4️⃣5️⃣ ءSource Generatorها در مقایسه با Reflection برای حل مسائل مشابه چه تفاوتی دارند؟ ⚙️
📐 فصل ۱۶ — Span، Memory و Pipelines (۳ سؤال)
5️⃣5️⃣ ء<Span<T چیست و چه مشکلی را حل میکند؟ 🚀
6️⃣5️⃣ چرا <Span<T نمیتواند بهعنوان یک Field در یک Class معمولی استفاده شود؟ راهکار چیست؟ 🧠
7️⃣5️⃣ ء<ArrayPool<T چیست و چه زمانی باید از آن استفاده کنید؟ ♻️📦
📦 فصل ۱۷ — Serialization (۲ سؤال)
8️⃣5️⃣ حالت Source Generator در System.Text.Json چیست و چه زمانی باید از آن استفاده کنیم؟ ⚡️
9️⃣5️⃣ چرا BinaryFormatter Deprecated شد و بهجای آن باید از چه چیزی استفاده کنیم؟ 🚫
🆕 فصل ۱۸ — قابلیتهای نسخههای #C (۲ سؤال)
0️⃣6️⃣ کلیدواژهی field در C# 14 چیست و چه مشکلی را در Setterهای Property حل میکند؟ 🆕✨
1️⃣6️⃣ ءCallerArgumentExpression چیست و چگونه در پیادهسازی Guard Clauseها کاربرد دارد؟ 🛡
⚙️ فصل ۱۹ — NET Runtime، CLR، JIT. و AOT (۳ سؤال)
6️⃣2️⃣ ءTiered Compilation در NET. چیست و چگونه بین Startup Performance و Steady-State Performance تعادل ایجاد میکند؟ 🚀
6️⃣3️⃣ ءNative AOT چیست و استفاده از آن چه Trade-offهایی دارد؟ ⚡️
6️⃣4️⃣ ءPGO (Profile-Guided Optimization) چیست و Dynamic PGO در NET. چگونه کار میکند؟ 🧠🚀
📊 فصل ۲۰ — Performance و Benchmarking (۲ سؤال)
6️⃣5️⃣ چرا نباید از Stopwatch و یک حلقهی for بهعنوان جایگزین BenchmarkDotNet استفاده کنیم؟ ⏱️
6️⃣6️⃣ ءMemoryDiagnoser چه چیزی را اندازهگیری میکند و چگونه باید تعداد Gen0، Gen1 و Gen2 را تفسیر کنیم؟ 🧠📊
📁 فصل ۲۱ — BCL و I/O (۲ سؤال)
6️⃣7️⃣ تفاوت بین Stream، MemoryStream و FileStream چیست؟ 📁
6️⃣8️⃣ ءRandomAccess که در NET 6. معرفی شد چیست و چه سناریویی را بهبود میدهد؟ ⚡️📂
📦 فصل ۲۲ — NuGet (۱ سؤال)
6️⃣9️⃣ ءCentral Package Management و فایل Directory.Packages.props چیستند؟ 📦
🛠 فصل ۲۳ — MSBuild و csproj (۲ سؤال)
7️⃣0️⃣ ءDirectory.Build.props و Directory.Build.targets چیستند و چه کاربردی دارند؟ 🛠
7️⃣1️⃣ ءMulti-Targeting چیست و چه زمانی از آن استفاده میکنید؟ 🎯
💻 فصل ۲۴ — NET CLI. (۲ سؤال)
7️⃣2️⃣ تفاوت dotnet build و dotnet publish چیست؟ 💻
7️⃣3️⃣ ءglobal.json چیست و چه مشکلی را در محیطهایی که چند نسخهی NET. دارند حل میکند؟ ⚙️