مصاحبه C# — سطح Mid
سؤالها بر اساس دفعات تکرار در مصاحبههای واقعی مرتب شدهاند.
چکلیست آمادگی مصاحبه
هنوز هیچ سؤالی را تمرین نکردهای. حالت تمرین را شروع کن.
0 از 35 سؤال «بلد بودم» · 0 سؤال مرور شده · این پیشرفت فقط روی همین مرورگر ذخیره میشود.
35 سؤال
- 1.تفاوت async و await چیست؟async مشخص میکند متد میتواند از await استفاده کند؛ await اجرای متد را تا تکمیل غیرمسدودکننده Task متوقف میکند.تکرار در مصاحبهها: 92٪
- 2.Dependency Injection در C# چیست؟الگویی برای تزریق وابستگیها از بیرون بهجای ساخت مستقیم Objectها داخل کلاس.تکرار در مصاحبهها: 90٪
- 3.چرا نباید از .Result یا .Wait() استفاده کنیم؟چون میتوانند باعث Deadlock شوند، Thread را بلاک میکنند و کارایی را کاهش میدهند.تکرار در مصاحبهها: 88٪
- 4.آیا async باعث ایجاد Thread جدید میشود؟خیر؛ async/await فقط اجرای غیرهمزمان Task را مدیریت میکند و بهتنهایی Thread جدیدی ایجاد نمیکند.تکرار در مصاحبهها: 85٪
- 5.Garbage Collector چگونه کار میکند؟Objectهایی که دیگر Reference ندارند را شناسایی کرده و حافظه آنها را آزاد میکند.تکرار در مصاحبهها: 82٪
- 6.چرا async/await باعث افزایش Performance میشود؟چون هنگام انتظار برای عملیات I/O، Thread آزاد میشود و میتواند درخواستهای دیگر را پردازش کند.تکرار در مصاحبهها: 82٪
- 7.تفاوت IEnumerable و IQueryable چیست؟IEnumerable روی دادههای موجود در Memory کار میکند؛ IQueryable Query را به منبع داده مثل SQL Server منتقل میکند.تکرار در مصاحبهها: 82٪
- 8.چرا async void توصیه نمیشود؟چون قابل Await نیست، مدیریت Exception آن دشوار است و فقط مناسب Event Handler است.تکرار در مصاحبهها: 80٪
- 9.تفاوت IEnumerable و IQueryable از نظر Performance چیست؟IEnumerable پردازش را در Memory انجام میدهد؛ IQueryable Query را به Provider مثل SQL منتقل میکند.تکرار در مصاحبهها: 80٪
- 10.تفاوت Stack و Heap چیست؟Stack برای دادههای سریع و کوتاهعمر است؛ Heap برای Objectها و دادههای پیچیدهتر استفاده میشود.تکرار در مصاحبهها: 75٪
- 11.Runtime در .NET چیست؟محیطی که کدهای .NET را اجرا میکند و مدیریت حافظه، Garbage Collection، JIT و Exceptionها را انجام میدهد.تکرار در مصاحبهها: 75٪
- 12.Garbage Collector چگونه روی Performance اثر میگذارد؟GC اشیای بدون Reference را آزاد میکند؛ Allocation زیاد باعث اجرای بیشتر GC و کاهش Performance میشود.تکرار در مصاحبهها: 75٪
- 13.تفاوت Asynchronous و Multithreading چیست؟Asynchronous مناسب عملیات I/O بدون اشغال Thread در زمان انتظار است؛ Multithreading مناسب اجرای همزمان چند Thread برای CPU-Bound است.تکرار در مصاحبهها: 74٪
- 14.JIT چیست؟کامپایلری در CLR که کد IL را هنگام اجرا به Machine Code تبدیل میکند.تکرار در مصاحبهها: 70٪
- 15.Garbage Collector چگونه کار میکند؟Objectهای بدون Reference را شناسایی و حافظه آنها را آزاد میکند.تکرار در مصاحبهها: 70٪
- 16.تفاوت Compile Time و Runtime چیست؟Compile Time زمان تبدیل کد به IL و بررسی خطاهای Syntax است؛ Runtime زمان اجرای واقعی برنامه است.تکرار در مصاحبهها: 70٪
- 17.چه زمانی از Task.Run() استفاده میکنیم؟برای انتقال عملیات CPU-Bound به Thread Pool؛ نه برای عملیات I/O.تکرار در مصاحبهها: 70٪
- 18.تفاوت == و Equals() در C# چیست؟== معمولاً مقایسه مقدار یا Reference است؛ Equals() برای مقایسه منطقی Objectها استفاده میشود.تکرار در مصاحبهها: 70٪
- 19.تفاوت Managed و Unmanaged Code چیست؟Managed Code تحت کنترل CLR است؛ Unmanaged Code مستقیم با سیستمعامل کار میکند.تکرار در مصاحبهها: 68٪
- 20.CLR چه کاری انجام میدهد؟موتور اجرای برنامههای .NET است و مسئول اجرای IL، مدیریت حافظه، GC، Exception Handling و امنیت اجرای کد است.تکرار در مصاحبهها: 68٪
- 21.Deferred Execution در LINQ چیست؟یعنی LINQ Query تا زمان استفاده واقعی (مثلاً پیمایش با foreach یا فراخوانی ToList) اجرا نمیشود.تکرار در مصاحبهها: 68٪
- 22.یک برنامه C# چگونه اجرا میشود؟کد C# ابتدا به IL تبدیل میشود، سپس CLR با کمک JIT آن را به کد ماشین تبدیل و اجرا میکند.تکرار در مصاحبهها: 66٪
- 23.مهمترین ویژگی C# 13 چیست؟پشتیبانی params از انواع Collection، معرفی System.Threading.Lock و بهبود Partial Property و Performance.تکرار در مصاحبهها: 65٪
- 24.JIT چه کاری انجام میدهد؟کد IL را در زمان اجرا به Machine Code تبدیل میکند.تکرار در مصاحبهها: 65٪
- 25.تفاوت Any و Count چیست؟Any فقط وجود داده را بررسی میکند و معمولاً سریعتر است؛ Count تعداد کامل عناصر را محاسبه میکند.تکرار در مصاحبهها: 60٪
- 26.Assembly در .NET چیست؟واحد Deployment در .NET که شامل کد IL و Metadata است.تکرار در مصاحبهها: 60٪
- 27.JIT Compiler چیست؟بخشی از CLR که کد IL را هنگام اجرا به کد ماشین تبدیل میکند تا CPU بتواند آن را اجرا کند.تکرار در مصاحبهها: 60٪
- 28.تفاوت typeof() و GetType() چیست؟typeof() وقتی Type در Compile مشخص است استفاده میشود؛ GetType() نوع واقعی Object را در Runtime برمیگرداند.تکرار در مصاحبهها: 58٪
- 29.چرا .NET CLI برای DevOps مهم است؟چون تمام عملیات Build، Test و Deploy را میتوان بدون محیط گرافیکی و بهصورت خودکار در Pipeline اجرا کرد.تکرار در مصاحبهها: 58٪
- 30.Task و ValueTask چه تفاوتی دارند؟ValueTask در سناریوهایی که ممکن است بهصورت همزمان تکمیل شود Allocation را کاهش میدهد، اما پیچیدهتر است.تکرار در مصاحبهها: 55٪
- 31.آیا Expression Tree سریعتر از Delegate است؟خیر؛ Delegate معمولاً سریعتر اجرا میشود.تکرار در مصاحبهها: 50٪
- 32.چرا از System.Threading.Lock استفاده کنیم؟نسبت به lock(object) کارایی بهتری در سناریوهای چندنخی دارد و Type Safety بالاتری فراهم میکند.تکرار در مصاحبهها: 50٪
- 33.params Collection چه تغییری ایجاد کرده است؟پیشتر params فقط روی آرایهها کار میکرد؛ اکنون میتوان انواع دیگر Collection را هم بهعنوان پارامتر params استفاده کرد.تکرار در مصاحبهها: 48٪
- 34.Source Generator در چه تکنولوژیهای .NET استفاده شده است؟نمونههای معروف: System.Text.Json، Regex Source Generator، Logging Source Generator و ASP.NET Core Minimal API.تکرار در مصاحبهها: 48٪
- 35.Partial Property چه کاربردی دارد؟عمدتاً برای Source Generatorها استفاده میشود که بخشی از پیادهسازی Property را بهصورت خودکار تولید کنند.تکرار در مصاحبهها: 45٪
