En İyi 50 C# Mülakat Soruları ve Cevapları (2026)
Yeni Öğrenciler ve 2/3/5/10 Yıllık Deneyim için C# Mülakat Soruları ve Cevapları
İşte hayallerindeki işi bulmaları için hem yeni hem de 5 veya 10 yıllık deneyimli adaylar için C# mülakat soruları ve cevapları.
1) C# nedir?
C#, .Net çerçevesi tarafından derlenen, nesne yönelimli, tür açısından güvenli ve yönetilen bir dildir. Microsoft Orta Dil.
👉 Ücretsiz PDF İndir: C# Mülakat Mülakat Soruları ve Cevapları
2) Yorum türlerini açıklayın C# örneklerle
Tek çizgi
Örnek:
//This is a single line comment
ii. Çoklu satır (/* */)
Örnek:
/*This is a multiple line comment We are in line 2 Last line of comment*/
iii. XML Açıklamaları (///).
Örnek:
/// summary; /// Set error message for multilingual language. /// summary
3) Birden fazla catch bloğu yürütülebilir mi?
Hayır, benzer türden birden fazla catch bloğu çalıştırılamaz. Uygun yakalama kodu yürütüldüğünde, kontrol nihayet bloğuna aktarılır ve ardından nihayet bloğu takip eden kod yürütülür.
4) Public, static ve void arasındaki fark nedir?
Genel olarak bildirilen değişkenlere veya yöntemlere uygulamanın herhangi bir yerinden erişilebilir. Statik olarak bildirilen değişkenlere veya yöntemlere, sınıfın bir örneğini oluşturmadan genel olarak erişilebilir. Statik üye, varsayılan olarak genel olarak erişilemez; kullanılan, değiştirilen erişim türüne bağlıdır. Derleyici, yöntemin adresini giriş noktası olarak saklar ve bu bilgiyi herhangi bir nesne oluşturulmadan önce yürütmeye başlamak için kullanır. Ve Void, yöntemin veya değişkenin herhangi bir değer döndürmediğini belirten bir tür değiştiricidir.
C# röportaj soruları
5) Nesne nedir?
Bir nesne, o sınıfın yöntemlerine eriştiğimiz bir sınıfın örneğidir. Bir nesne oluşturmak için “Yeni” anahtar sözcüğü kullanılır. Bellekte nesne oluşturan bir sınıf, o sınıfın yöntemleri, değişkenleri ve davranışları hakkındaki bilgileri içerecektir.
6) Yapıcıları Tanımlayın
Yapıcı, sınıfıyla aynı adı taşıyan bir sınıftaki üye işlevdir. Bir nesne sınıfı oluşturulduğunda yapıcı otomatik olarak çağrılır. Sınıfı başlatırken veri üyelerinin değerlerini oluşturur.
7) Pürüzlü Diziler Nedir?
Dizi tipinin elemanlarını içeren Diziye Jagged Array denir. Elemanlar farklı boyut ve boyutlarda olabilir. Jagged Array'i dizilerden oluşan bir Array olarak da adlandırabiliriz.
8) Ref ve out parametreleri arasındaki fark nedir?
Ref olarak iletilen bir argümanın yönteme geçmeden önce başlatılması gerekirken, out parametresinin bir yönteme geçmeden önce başlatılmasına gerek yoktur.
9) C#'ta 'using' ifadesinin kullanımı nedir?
'Kullanma' bloğu, bir kaynağı elde etmek ve onu işlemek için kullanılır ve ardından bloğun yürütülmesi tamamlandığında otomatik olarak imha edilir.
10) Serileştirme nedir?
Bir nesneyi ağ üzerinden taşımak istediğimizde, nesneyi bir bayt akışına dönüştürmemiz gerekir. Bir nesneyi bayt akışına dönüştürme işlemine Serileştirme adı verilir. Bir nesnenin serileştirilebilir olması için ISerialize Arayüzünü uygulaması gerekir. Seri durumdan çıkarma, bayt akışından bir nesne oluşturmanın ters işlemidir.
11) “This” komutunu statik bir metot içerisinde kullanabilir miyiz?
'This'i statik bir yöntemde kullanamayız çünkü statik değişkenleri/yöntemleri statik bir yöntemde kullanabiliriz.
12) Sabitler ile salt okunur arasındaki fark nedir?
Sabit değişkenler derleme zamanında bildirilir ve başlatılır. Değer daha sonra değiştirilemez. Salt okunur yalnızca değeri çalışma zamanında atamak istediğimizde kullanılır.
13) Arayüz sınıfı nedir? Buna bir örnek ver
Arayüz, yalnızca genel soyut yöntemlere sahip soyut bir sınıftır ve yöntemlerin tanımı değil, yalnızca bildirimi vardır. Bu soyut yöntemlerin miras alınan sınıflarda uygulanması gerekir.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
interface Guru99Interface
{
void SetTutorial(int pID, string pName);
String GetTutorial();
}
class Guru99Tutorial : Guru99Interface
{
protected int TutorialID;
protected string TutorialName;
public void SetTutorial(int pID, string pName)
{
TutorialID = pID;
TutorialName = pName;
}
public String GetTutorial()
{
return TutorialName;
}
static void Main(string[] args)
{
Guru99Tutorial pTutor = new Guru99Tutorial();
pTutor.SetTutorial(1,".Net by Guru99");
Console.WriteLine(pTutor.GetTutorial());
Console.ReadKey();
}
}
}
14) Değer türleri ve referans türleri nelerdir?
Bir değer türü, bir veri değerini kendi bellek alanında tutar. Örnek
int a = 30;
Referans türü, değerin saklandığı Nesnenin adresini saklar. Başka bir hafıza konumuna bir işaretçidir.
string b = "Hello Guru99!!";
15) Özel Kontrol ve Kullanıcı Kontrolü Nedir?
Özel Kontroller, derlenmiş kod (Dll'ler) olarak üretilen kontrollerdir, kullanımı daha kolaydır ve araç kutusuna eklenebilir. Geliştiriciler kontrolleri web formlarına sürükleyip bırakabilirler. Nitelikler, tasarım zamanında bunu yapabilir. Çoklu Uygulamalara (Paylaşılan Dll'ler varsa) kolayca özel kontroller ekleyebiliriz. Yani, eğer özellerse, dll'yi web uygulamasının bin dizinine kopyalayabilir ve sonra referans ekleyebilir ve bunları kullanabiliriz.
Kullanıcı Kontrolleri ASP dosyalarına çok benzer ve oluşturulması kolaydır. Kullanıcı kontrolleri araç kutusuna yerleştirilemez ve oradan sürüklenip bırakılamaz. Kendi tasarımları ve kod arkaları vardır. Kullanıcı kontrolleri için dosya uzantısı ascx'tir.
16) C#'ta mühürlü sınıflar nelerdir?
Miras alınacak sınıfı kısıtlamak istediğimizde mühürlü sınıflar oluştururuz. Bir sınıftan türetmeyi önlemek için kullanılan mühürlü değiştirici. Temel sınıf olarak mühürlü bir sınıfı zorla belirtirsek, derleme zamanı hatası oluşur.
17) Yöntem aşırı yüklemesi nedir?
Yöntem aşırı yüklemesi, aynı sınıfta benzersiz imzalara sahip, aynı adda birden fazla yöntem oluşturmaktır. Derlediğimizde derleyici, çağrılacak belirli yöntemi belirlemek için aşırı yük çözümlemesini kullanır.
18) Array ve Arraylist arasındaki fark nedir?
Bir dizide yalnızca aynı türden öğeler bulunabilir. Karşılaştırıldığında dizinin boyutu sabittir. Arraylist bir diziye benzer ancak sabit bir boyutu yoktur.
19) Özel bir sanal yöntem geçersiz kılınabilir mi?
Hayır, çünkü sınıf dışından erişilemezler.
20) Erişilebilirlik değiştiricisini “korumalı dahili” olarak tanımlayın.
Korumalı Dahili değişkenlere/yöntemlere aynı derleme içinde ve ayrıca bu üst sınıftan türetilen sınıflardan erişilebilir.
21) System.String ve System.Text.StringBuilder sınıfları arasındaki farklar nelerdir?
System.String değişmez. Bir dize değişkeninin değerini değiştirdiğimizde, yeni değere yeni bir bellek ayrılır ve önceki bellek tahsisi serbest bırakılır. System.StringBuilder, değiştirilen dize için ayrı bir bellek konumu tahsis edilmeden çeşitli işlemlerin gerçekleştirilebileceği değişken bir dize kavramına sahip olacak şekilde tasarlanmıştır.
22) System.Array.CopyTo() ve System.Array.Clone() arasındaki fark nedir?
kullanma Clone() yöntemini kullanarak, orijinal Array'deki tüm elemanları içeren yeni bir dizi nesnesi yaratırız. CopyTo() yöntem. Mevcut dizinin tüm elemanları mevcut başka bir diziye kopyalanır. Her iki yöntem de sığ bir kopya gerçekleştirir.
23) Dizinin elemanlarını azalan düzende nasıl sıralayabiliriz?
kullanma Sort() takip edilen yöntemler Reverse() yöntemi.
24) Bir istisnayı yakalamak için C# sözdizimini yazın
Bir istisnayı yakalamak için try-catch bloklarını kullanırız. Catch bloğu system.Exception tipinde bir parametreye sahip olabilir.
Örneğin:
try {
GetAllData();
}
catch (Exception ex) {
}
Yukarıdaki örnekte parametreyi catch ifadesinden çıkarabiliriz.
25) Bir arayüz ile soyut sınıf arasındaki fark nedir?
Arayüzler yalnızca bildirimi olan ancak tanımı olmayan tüm yöntemlere sahiptir. Soyut bir sınıfta bazı somut yöntemlerimiz olabilir. Bir arayüz sınıfında tüm yöntemler geneldir. Soyut bir sınıfın özel yöntemleri olabilir.
26) Finalize() ve Dispose() yöntemleri arasındaki fark nedir?
Dispose() Bir nesnenin yönetilmeyen kaynakları kendisiyle birlikte serbest bırakmasını istediğimizde çağrılır. Diğer taraftan, Finalize() aynı amaçla kullanılır ancak bir nesnenin çöp toplanmasını garanti etmez.
27) Dairesel referanslar nelerdir?
Döngüsel referans, iki veya daha fazla kaynağın birbirine bağımlı olması durumunda kilitlenme durumuna neden olan ve kaynakları kullanılamaz hale getiren durumdur.
28) C#.NET'te jenerikler nelerdir?
Jenerikler, kod yedekliliğini azaltmak, tür güvenliğini ve performansı artırmak için yeniden kullanılabilir kod sınıfları oluşturmak için kullanılır. Jenerikleri kullanarak koleksiyon sınıfları oluşturabiliriz. Jenerik koleksiyon oluşturmak için System.Collections ad alanındaki ArrayList gibi sınıflar yerine System.Collections.Generic ad alanı kullanılmalıdır. Jenerikler, parametreli türlerin kullanımını teşvik eder.
29) .NET'te nesne havuzu nedir?
Nesne havuzu, kullanıma hazır nesnelerin bulunduğu bir kaptır. Halihazırda kullanımda olan nesneyi, havuzdaki toplam nesne sayısını takip eder. Bu, nesneleri oluşturma ve yeniden oluşturma yükünü azaltır.
30) .net'te yaygın olarak kullanılan istisna türlerini listeleyin
ArgumentException, ArgumentNullException, ArgumentOutOfRangeException, ArithmeticException, DivideByZeroException ,OverflowException, IndexOutOfRangeException, InvalidCastException, GeçersizOperationException, IOEndOfStreamException, NullReferenceException, OutOfMemoryException, StackOverflowException vb.
31) Özel İstisnalar Nelerdir?
Bazen kullanıcı gereksinimlerine göre ele alınması gereken bazı hatalar olabilir. Bunlar için özel istisnalar kullanılır ve tanımlanmış istisnalar kullanılır.
32) Delegeler nedir?
Delegeler aynı işlev işaretçileridir C++ancak tek fark, işlev işaretçilerinin aksine tür açısından güvenli olmalarıdır. Temsilciler gereklidir çünkü bunlar çok daha genel tür uyumlu işlevler yazmak için kullanılabilir.
33) C#'ta bir sınıfı diğer sınıfa nasıl miras alırsınız?
C#'ta kalıtım operatörü olarak iki nokta üst üste kullanılır. Sadece iki nokta üst üste ve ardından sınıf adını yerleştirin.
public class DerivedClass : BaseClass
34) .net'teki tüm sınıfların türetildiği temel sınıf nedir?
System.Object
35) Yöntem geçersiz kılma ile yöntemin aşırı yüklenmesi arasındaki fark nedir?
Yöntem geçersiz kılmada, türetilmiş sınıftaki yöntem davranışını değiştiren yöntem tanımını değiştiririz. Yöntem aşırı yüklemesi, aynı sınıf içinde farklı imzalara sahip, aynı adda bir yöntem oluşturmaktır.
36) Bir yöntemin aşırı yüklenebilmesinin farklı yolları nelerdir?
Yöntemler, bir parametre için farklı veri türleri, farklı parametre sırası ve farklı sayıda parametre kullanılarak aşırı yüklenebilir.
37) Arayüz içindeki yöntemler için erişilebilirlik değiştiricisini neden belirleyemiyorsunuz?
Bir arayüzde, yöntem tanımı olmayan sanal yöntemlerimiz var. Türetilmiş sınıfta tüm yöntemler geçersiz kılınacak şekilde vardır. Bu yüzden hepsi halka açık.
38) Sınıfı miras alınacak şekilde nasıl ayarlayabiliriz, ancak yöntemin geçersiz kılınmasını nasıl önleyebiliriz?
Sınıfı herkese açık olarak bildirin ve geçersiz kılınmasını önlemek için yöntemi mühürleyin.
39) Miras alınan arayüzlerin çakışan yöntem adları varsa ne olur?
Yöntem kendi sınıfınızın içinde olduğundan uygulama size kalmış. Farklı arayüzlerden gelen yöntemler farklı veriler beklediğinde sorun olabilir, ancak derleyicinin umurunda olduğu sürece sorun yok.
40) Yapı ile Sınıf arasındaki fark nedir?
Yapılar değer tipi değişkenlerdir ve sınıflar referans tipleridir. Yığında depolanan yapılar ek yüke neden olur ancak daha hızlı erişime neden olur. Yapılar miras alınamaz.
41) .Net'te null olabilen türler nasıl kullanılır?
Değer türleri normal değerlerini veya boş bir değeri alabilir. Bu tür türlere null yapılabilir türler denir.
Int? someID = null;
If(someID.HasVAlue)
{
}
42) Varsayılan olmayan değerlere sahip bir diziyi nasıl oluşturabiliriz?
Enumerable.Repeat kullanarak varsayılan olmayan değerlere sahip bir dizi oluşturabiliriz.
43) C#'ta “is” ve “as” operatörleri arasındaki fark nedir?
“is” operatörü, bir nesnenin belirli bir türle uyumluluğunu kontrol etmek için kullanılır ve sonucu Boolean olarak döndürür.
“As” operatörü, bir nesnenin bir türe veya sınıfa dönüştürülmesi için kullanılır.
44) Çok noktaya yayın delegesi nedir?
Kendisine atanmış birden fazla işleyiciye sahip bir temsilciye çok noktaya yayın temsilcisi adı verilir. Her işleyici bir yönteme atanır.
45) C# .NET'te indeksleyiciler nelerdir?
Dizin oluşturucular akıllı olarak bilinir C#'daki diziler. Bir sınıfın örneklerinin bir diziyle aynı şekilde indekslenmesine olanak tanır.
Örneğin:
public int this[int index] // Indexer declaration
46) .NET'teki "throw" ve "throw ex" arasındaki fark nedir?
"Throw" ifadesi orijinal hata yığınını korurken "throw ex", atma noktasından itibaren yığın izlemesine sahiptir. Daha doğru hata bilgisi sağladığı için her zaman "fırlat" kullanılması tavsiye edilir.
47) C# özellikleri ve önemi nelerdir?
C#, geliştiricilere belirli varlıklar üzerinde bildirimsel etiketleri tanımlamanın bir yolunu sağlar; örn. Sınıf, yöntem vb. niteliklere nitelik denir. Özelliğin bilgileri çalışma zamanında Reflection kullanılarak alınabilir.
48) C#'ta tekil tasarım modeli nasıl uygulanır?
Singleton modelinde, bir sınıfın yalnızca bir örneği olabilir ve ona küresel olarak bir erişim noktası sağlar.
Örneğin:
Public sealed class Singleton
{
Private static readonly Singleton _instance = new Singleton();
}
49) Directcast ve ctype arasındaki fark nedir?
DirectCast, çalışma zamanı türünün DirectCast'te belirtilen türle aynı olmasını gerektiren nesne türünü dönüştürmek için kullanılır.
Ctype, dönüşümün ifade ile tür arasında tanımlandığı dönüşüm için kullanılır.
50) C# kodu yönetilen kod mu yoksa yönetilmeyen kod mu?
C#, yönetilen koddur çünkü Ortak dil çalışma zamanı, C# kodunu Ara dile derleyebilir.
51) Konsol uygulaması nedir?
Konsol uygulaması, komut isteminde çalıştırılabilen bir uygulamadır. Windows. Herhangi .Net'e yeni başlayanlar, bir konsol uygulaması oluşturmak ideal olarak başlangıç için ilk adımdır.
52) Bir öğeyi kuyruktan kaldırmaya bir örnek verin
Kuyruktan bir öğeyi kaldırmak için dequeue yöntemi kullanılır.
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
class Program
{
static void Main(string[] args)
{
Queue qt = new Queue();
qt.Enqueue(1);
qt.Enqueue(2);
qt.Enqueue(3);
foreach (Object obj in qt)
{
Console.WriteLine(obj);
}
Console.WriteLine(); Console.WriteLine();
Console.WriteLine("The number of elements in the Queue " + qt.Count);
Console.WriteLine("Does the Queue contain " + qt.Contains(3));
Console.ReadKey();
}
}
}
Bu mülakat soruları aynı zamanda yaşamınızda da yardımcı olacaktır.
