Yazılım Geliştirme

En Popüler C# Mülakat Soruları

8 dakika • 14 Ağustos 2023

En Popüler C# Mülakat Soruları
Veri Analitiği
Bu içeriği yapay zeka ile özetle

Accenture, Google, Delivery Hero ve Microsoft gibi teknoloji şirketleri C# kullanıyor. Pek çok şirket C#’ı tercih ediyor ve C# programlama dilini bilen geliştiricilere gün geçtikçe ihtiyaç artıyor.

Mülakatlarda teknik sorunlarla aniden karşılaşınca oluşan stresin nasıl bir duygu olduğunu biliyoruz. Bu nedenle, teknik yazılım mülakatına gitmeden önce alıştırma yapmakta fayda var. Listelediğimiz en çok sorulan C# mülakat sorularına göz atarak teknik mülakata hazır hale gelebilirsiniz. 

İster C# geliştiricisi olmak isteyen yeni başlayan programcı olun, isterseniz iş değiştirmek isteyen deneyimli bir profesyonel olun, C# ile ilgili en çok sorulan mülakat sorularına ve yanıtlarına bir göz atın. 


 

1. C# nedir?

C# yani diğer bir adıyla C Sharp, Microsoft tarafından geliştirilen sunucu ve gömülü sistemleri çalıştırmak için tasarlanmış programlama dilidir. .NET Framework ortamında kullanılmak üzere geliştirilmiş nesne tabanlı programlama dillerinden birisidir.

C#, .NET çerçevesiyle birlikte kullanılır. C#, C ve C++ dillerine dayanmaktadır. Ancak, C# aynı zamanda otomatik bellek yönetimi ve Common Language Infrastructure (CLI) desteği gibi birçok yeni özellik ve iyileştirme de içerir.

C#'ın en önemli özelliklerinden biri, nesne yönelimli programlama (OOP) desteği sunmasıdır. Windows masaüstü uygulamaları, web uygulamaları, mobil uygulamalar, oyunlar vb. gibi geniş bir yelpaze programlama görevleri için kullanılan esnek bir dildir.


 

2. C#’ın temel özellikleri nelerdir?

  1. Nesne yönelimli programlama (OOP): C#, sınıflar ve nesneler içerir.
  2. Değişkenler ve veri tipleri: C#, geniş bir veri tipi yelpazesine sahiptir.
  3. Diziler: C#, aynı veri tipinde birden fazla değişkeni depolamak için diziler kullanılabilir.
  4. Döngüler: C#, for, while, do-while gibi döngüleri destekler.
  5. Sınıflar ve nesneler: C#, nesne yönelimli programlamayı sağlar ve sınıflar ve nesneler aracılığıyla kod yazılabilir.
  6. Platform bağımsız: C#, .NET Framework ile birlikte çalışır.Windows, Linux ve macOS gibi farklı işletim sistemlerinde çalışabilir.


 

3. C#'ın C'den farkı nedir?

C#, nesne yönelimli bir programlama dili iken, C prosedürel bir dildir. C# ve C arasındaki en büyük fark; C#, CLR tarafından otomatik çöp toplamayı desteklerken C'nin desteklememesidir. C# platformdan bağımsız bir programlama dilidir. 


 

4. C#'da diziler, listeler ve koleksiyonlar arasındaki farklar nelerdir? Hangi durumda kullanılırlar?

C#'da diziler, listeler ve koleksiyonlar verileri saklamak için kullanılan temel veri yapılarıdır. Hangi veri yapısını kullanacağınız, projenin ihtiyacına ve kullanım amacına göre değişir. Bunların temel farkları vardır:

  • Diziler: C#'da sabit boyutlu ve dizinli veri yapılarıdır. 
  • Listeler: Listeler, C#'da dinamik boyutlu ve dizinli veri yapılarıdır.
  • Koleksiyonlar: C#'da genişletilebilir ve özelleştirilebilir veri yapılarıdır. 


 

5. C#'ta çöp toplama nedir?

Çöp toplama, istenmeyen nesneler tarafından yakalanan belleği boşaltma işlemidir. Çöp toplama üç durumda gerçekleşir:

✔️ Nesneler tarafından kullanılan bellek önceden ayarlanmış eşik değerini aşarsa

✔️ Çöp toplama yöntemi başlatılırsa

✔️ Sistemde düşük fiziksel bellek varsa


 

6. Ortak Dil Çalışma Zamanı (CLR) nedir?

CLR, C# dahil olmak üzere çeşitli diller için program yürütmeyi yönetir. CLR mimarisi bellek yönetimini, çöp toplama ve güvenlik işlemlerini gerçekleştirir.

 

 

7. C#'daki sınıf türleri nelerdir?

Sınıf, nesnelerinin ve örneklerinin tüm özelliklerini kapsayan bir varlıktır. C#'ta 

-Statik sınıf

-Kısmi sınıf

-Soyut sınıf

-Mühürlü sınıf 

olmak üzere dört tür sınıf vardır.


 

8. C#'da threading ne zaman ve nasıl kullanılır?

Threading, aynı ortamda aynı anda birden fazla işi yapmaya denir. Thread’ler ise bu işlerin her biridir. Thread’ler aynı anda çalıştığında işlemciye process’ler olarak gider ve sıraya alınır. 

C#'da threading, bir uygulamanın birden fazla iş parçacığını aynı anda çalıştırmasını sağlar. Bu sayede, uygulama içinde birden fazla işlemi aynı anda yürütebilir ve işlemler arasında zaman kaybını azaltılabilir. Threading şu durumlarda kullanılır:

✔️ Threading, uygulamanın içinde yer alan uzun süreli işlemlerin yürütülmesi istendiğinde,

✔️ Birden fazla işlemi aynı anda yürütmesi istendiğinde kullanılır.


 

9. Yönetilen ve yönetilmeyen kod nedir?

1️⃣ Yönetilen kod, kodu .NET çerçevesinde yönetilen bir CLR çalışma zamanı ortamında çalıştırmaya olanak tanır. Çöp toplayıcı, istisna işleme vb. gibi çeşitli hizmetler sağlar. 

2️⃣ Yönetilmeyen kod, kodun .NET çerçevesinin dışında çalışan bir koddur. Kod CLR'de çalışmaz.


 

10. C# diziler nasıl tanımlanır?

Diziler, aşağıdaki gibi tanımlanabilir:

veya


 

11. C#'da nesne tanımlaması nasıl yapılır?

Sınıf oluşturmak için 👇; 

 

Nesne oluşturmak için 👇;


 

12. C#'ta sınıflar nelerdir?

C#, nesne yönelimli bir dil olduğu için sınıfları yoğun bir şekilde kullanır. Sınıf, verilerin bir program içinde nasıl yapılandırılacağını, depolanacağını ve yönetileceğini tanımlayan bir kavramdır. C#'ta sınıf tanımlamak için class anahtar kelimesi kullanılır.

 

📍 Örnek bir sınıf tanıtımı: 


 

13. C#'ta nesneler nelerdir?

Nesneler, sınıf niteliklerini ve yöntemlerini kullanarak nesnelerin özelliklerini temsil edebilen sınıf örnekleridir. Nesneler, bir sınıf şablonuna dayanarak oluşturulur. C#'ta nesne oluşturmak için new anahtar kelimesi kullanılır.


 

14. C#'ta 'Break' ve 'Continue' arasındaki fark nedir?

1️⃣ Break: Döngüyü sonlandırmak için kullanılır. Bir döngü içinde break ifadesi ile karşılaşıldığında, döngüden çıkılır. 

C# For döngüsünde Break komutu kullanımı şu şekildedir: 

i 3 olduğunda döngü sonlanır.


C# While döngüsünde Break komutu kullanımı şu şekildedir:

i=10 olduğunda döngüden çıkılacaktır.


2️⃣ Continue: Döngü içindeki işlemi atlar ve sonraki yinelemeyi döngünün başından başlatır. Yalnızca döngülerde kullanılır.

C# For döngüsünde Continue komutu kullanımı:

i=4 olduğunda döngü bu adımı atlar ve bir sonraki adıma geçer.

 

C# While döngüsünde Continue komutu kullanımı:

Döngü 5'e geldiğinde bir sonraki adıma geçer.


 

15. Hata işleme için kullanılan C# anahtar kelimeleri nelerdir?

✔️ Try: Hataların olabileceği bir kod bloğunu işaret etmek için kullanılır. 

✔️ Catch: Bir try bloğu içinde oluşan hataları yakalamak ve işlemek için kullanılır.

✔️ Finally: Bir hatanın işlenip işlenmediğine bakılmaksızın, try bloğu içerisindeki kodların her zaman çalışmasını işaret eder.

✔️ Throw: Bir sorunla karşılaşıldığında istisna işaretlemek için kullanılır. 


 

16. C#’ta accessors (erişim belirleyici) nedir?

C#'ta accessors, bir sınıfın veya bir sınıfa ait özelliğin dışarıdan erişilebilirliğini ve değiştirilebilirliğini kontrol etmek için kullanılan özel yapıdır.

  • Get: Özel bir alanın değerini almak için kullanılır.
  • Set: Özel bir alana değer atamak için kullanılır.


 

17. C#'ta yorum eklemenin farklı yolları nelerdir?

📍 Tek satırlık yorum (//):

 

📍 XML yorumu (///):

 

📍 Çok satırlı yorum (/* */):


 

18. C#' ta Değer ve Referans türleri nedir?

C#’ta değer ve referans türleri olmak üzere 2 tane veri türü bulunur. 

1️⃣ Değer Türü: Veri değerini doğrudan ayrılmış bellek alanında depolar. Bellekte az yer kaplar ve hızlı bir şekilde erişilebilir. > “int”, "long", "float", "double", "decimal", "char", "bool", "byte", "short", "struct", "enum"
 

2️⃣ Referans Türü: Verileri doğrudan kendi belleğinde depolamaz. Bunun yerine, değişken veri değerini tutan başka bir bellekte bir referans depolar. Yani, veri yerine adresi tutar ve o adresin gösterdiği yerde de veri tutulur.  > "string", "object", "class", "interface", "array", "delegate", "pointer"


 

19. C# Destructor nedir?

C#'ta Destructor, bir sınıftan oluşturulan nesnenin ömrü sona erdiğinde otomatik olarak çağrılan özel bir metodudur. Destructor, .NET Garbage Collector tarafından kullanılan ve bellek yönetimi sürecinde önemli bir rol oynayan bir yapıdır. Constructor'ın tam tersidir. Bir destructor tanımlamak için, sınıf adı ve yaklaşık işareti kullanılır. 

 

📍 Örnek syntax:


 

20. C# enum nedir? 

Enum yani numaralandırma, C# dilinde bir değeri temsil eden veri türüdür. Ana kullanım amacı, bir programın okunmasını ve bakımını kolaylaştıran tam sayı sabitlerine adları veya dize değerlerini atamak için kullanılır.

📍 enum tanımlanırken, önceden belirlenen sabit değerler parantez içinde virgülle ayrılarak belirtilir.


 

21. C# dilinde Boxing ve Unboxing nedir?

Kutulama veya kutudan çıkarma olarak çevrilen bu iki işlem, C#'ta önemli bir kavramdır. C# tip sistemi, değer tipleri, referans tipleri ve işaretçi tipler olmak üzere üç veri tipi içerir. 

 

📥 Boxing: Değer tipini (char, int, vb.), referans tipine (nesne) dönüştürme işlemine Boxing denir. 

📤 Unboxing: Referans tipini değer tipine dönüştürme işlemine Unboxing denir. 


 

22. C#'ta kısmi sınıflar (partial classes) nelerdir?

✅ Kısmi sınıf yani diğer bir adıyla partical classes, C#'ın özel bir özelliğidir. Tek bir sınıfın işlevselliğini birden çok dosyaya uygulamayı sağlar. 

✅ Aynı sınıfın kodu farklı dosyalara bölünebilir ve hepsi birleştirilerek tek bir sınıf olarak çalışır.

✅ Kısmi sınıflar, özellikle büyük ve karmaşık sınıfların daha düzenli ve okunabilir bir şekilde yönetilebilmesi için kullanışlıdır.


 

23. C#'da kullanılan veri tipleri nelerdir?

C#'da kullanılan veri tipleri sayısal ve karakter veri tipleri olmak üzere ayrılırlar. 

Sayısal veri tipleri şunlardır:

  1. int: Tam sayılar için kullanılır.
  2. long: Uzun tam sayılar için kullanılır.
  3. float: Kısa ondalıklı sayılar için kullanılır. 
  4. double: Uzun ondalıklı sayılar için kullanılır. 
  5. decimal: Özel olarak büyük ondalıklı sayılar için kullanılır. 

 

Karakter veri tipleri şunlardır:

  1. char: A ve B gibi tek bir karakter için kullanılır. 


 

23. C#'ta uzantı yöntemleri nelerdir?

📍 Uzantı yöntemleri, mevcut yöntemlere yeni yöntemler eklenmesine yardımcı olur. Eklenen yöntemler statiktir. Varolan bir sınıfa metot eklemek istediğinizde, ancak o sınıfı değiştirme hakkınız olmadığında veya haklara sahip olmadığınızda, yeni metotları içeren yeni bir statik sınıf oluşturabilirsiniz. 


 

24. C#'da exception nasıl yapılır ve ne zaman kullanılır?

Exception handling, uygulama içinde oluşabilecek hata durumlarını yönetmek için kullanılan bir mekanizmadır. Exception handling, hata oluştuğunda uygulamanın normal işleyişini bozmadan hata durumunu ele almasını ve hata ile ilgili işlemleri gerçekleştirmesini sağlar.


 

25. C#'da LINQ (Language Integrated Query) kullanımı hakkında bilgi verin.

LINQ (Language Integrated Query), C# dilinde veri sorgulama işlemlerini yapmak için kullanılan bir teknolojidir. LINQ, verileri sorgulamak, filtrelemek, sıralamak ve dönüştürmek gibi işlemleri yapmak için kullanabileceğiniz sorgu ifadelerini C# diline entegre etmeyi amaçlar.

 

Veri kaynağı, SQL veri tabanı, XML dosyası, bir liste veya bir dizi gibi herhangi bir şey olabilir. LINQ, veri kaynağının türüne bağlı olarak sorgu ifadelerini uygun bir şekilde adapte eder.


 

26. C#'ta 'using' ifadesinin kullanımı nedir?

'Using', bir kaynak elde etmek, onu işlemek ve ardından bloğun yürütülmesi tamamlandığında otomatik olarak elden çıkarmak için kullanılır.


 

27. “This” komutunu statik bir metot içinde kullanabilir mi?

Statik bir yöntemde 'This' kullanılmaz. Statik bir yöntemde yalnızca statik değişkenler/yöntemler kullanılabilir.


 

28. C#’ta ref & out parametreleri arasındaki fark nedir?

"ref" ve "out" parametreleri, C# programlama dilinde metodların veya fonksiyonların çağırılması sırasında kullanılan anahtar kelimelerdir.  "ref" parametreleri, metod veya fonksiyon çağrılmadan önce değer atanmış olan değişkenlerdir.


 

C# Kariyerinize Başlayın

C# öğrenmek, iyi bir kariyere sahip olmanızı sağlayabilir. Pek çok açıdan, C# öğrenilmesi gereken bir programlama dili olarak görülüyor. 

Yeni başlıyorsanız C# Bootcamp’lerine katılabilir ve kendinizi geliştirebilirsiniz. Zaten halihazırda yılların deneyimine sahip bir geliştiriciyseniz, Coderspace’e üye olabilir ve sizin için doğru işi bulmanızı sağlayabiliriz.

Önerilen bloglar

Tüm bloglar

Açık etkinlikler

Tüm etkinlikler
ING Hubs Türkiye Agentic AI Hackathon
Hackathon-Datathon
ING Hubs Türkiye Agentic AI Hackathon

Gerçek bankacılık problemlerine Agentic AI çözümleri geliştir, geleceği birlikte şekillendir.

Son Başvuru 4 Ekim
Başlangıç 9 Ekim
Detaylı bilgi
AI Business Series
Meet-up
AI Business Series

AI Business Series: Pazarlama, finans ve mühendislik dünyasında yapay zekânın dönüşüm gücünü keşfetmek; sektör liderlerinin başarı hikâyeleriyle geleceğin yetkinliklerini öğrenmek için bir araya geldiğimiz online etkinlik serisidir.

Son Başvuru 14 Ekim
Başlangıç 15 Ekim
Bitiş 15 Ekim
Detaylı bilgi
ING Hubs Türkiye Agentic AI Hiring Day
Hiring Challenge
ING Hubs Türkiye Agentic AI Hiring Day

4+ yıl deneyimliysen ING Hubs Türkiye Senior Data Scientist Hiring Day seni bekliyor!

Son Başvuru 14 Ekim
Detaylı bilgi

Codecast yazılımcı sohbetleri

Farklı alanlardan konuklarımızın katılımlarıyla gerçekleşen Codecast’te yazılım ve veri bilimi yöneticilerini Podcast serimizde konuk ediyoruz!

Codecast

Python ile Programlamaya Giriş Eğitimi! 🧑‍💻

Yazılıma sıfırdan başlamanın en uygulamalı yolu burada. 🖐️ Python ile Programlamaya Giriş eğitiminde gerçek projelerle ilerle, sertifikanı kazan!

Hemen İncele!

Teknoloji dünyasında neler oluyor?

Coderspace Bülteni ile en güncel yazılar, analizler ve gelişmeler 5 dakikada e-posta kutunda!