yoklateknik mülakat

Backend Csharp Generics Interfaces Mülakat Soruları

75 doğrulanmış Backend Csharp Generics Interfaces mülakat sorusu — cevaplarıyla çöz, açıklamalarıyla öğren, gerçek simülasyonda kendini test et.

Gerçek simülasyonu dene →

Örnek sorular

Csharp Generics InterfacesZorluk 1
public class Box<T>
{
    public T Value { get; set; }
}

var box = new Box<int>();
box.Value = 42;

box.Value'nun derleme zamanı tipi nedir?
  • aobject
  • bdynamic
  • cint
  • dT
Açıklama:Box<T> tipi int ile kapatıldığında (Box<int>), tip içindeki her T yerine int geçer; bu yüzden box.Value açık tip parametresi T değil, somut int tipine sahiptir.
Csharp Generics InterfacesZorluk 1
C#'ta generic tip parametreleri runtime'da reify edilir (korunur). Java'nın type erasure'ına kıyasla bu ne anlama gelir?
  • aDerlendikten sonra runtime, T hakkında hiçbir şey bilmez — Java ile aynıdır.
  • bKullanılan gerçek tip argümanı runtime'da bilinir; bu yüzden typeof(T) gerçek tipi döndürür.
  • cSadece value type argümanları korunur; reference type argümanları silinir.
  • dReification yalnızca generic interface'ler için geçerlidir, generic class'lar için değil.
Açıklama:Java'da generic tip bilgisi derleme zamanında silinirken (erasure), CLR generics için tip bilgisini runtime'da tam olarak korur (reification). Bu yüzden C#'ta typeof(T) ve generic tipler üzerinde reflection, hem value hem reference type argümanları için doğru çalışır.
Csharp Generics InterfacesZorluk 1
Func<int, int, int> add = (a, b) => a + b;
Console.WriteLine(add(3, 4));

Çıktı nedir?
  • a34
  • bcompile error
  • c7
  • d12
Açıklama:Func<int, int, int>, iki int parametre alıp bir int döndüren generic bir delegate'tir. Lambda iki argümanı topladığı için add(3, 4) çağrısı 3 + 4 = 7 döndürür.
Csharp Generics InterfacesZorluk 1
Action<string> greet = name => Console.WriteLine($"Hello, {name}");
greet("Ada");

Çıktı nedir?
  • aHello, {name}
  • bhiçbir şey yazdırılmaz
  • ccompile error
  • dHello, Ada
Açıklama:Action<string>, bir string parametre alan ve hiçbir şey döndürmeyen generic bir delegate'tir. greet("Ada") çağrısı lambda'yı name = "Ada" ile çalıştırır ve interpolasyonlu string Hello, Ada yazdırılır.
Csharp Generics InterfacesZorluk 1
public static void PrintType<T>(T value)
{
    Console.WriteLine(typeof(T).Name);
}

PrintType(42);
PrintType("hello");

Çıktı nedir?
  • aInt32
    Int32
  • bT
    T
  • cobject
    object
  • dInt32
    String
Açıklama:Derleyici T'yi her çağrının argüman tipinden çıkarımlar: 42, T'yi int (Int32) yapar; "hello", T'yi string (String) yapar. typeof(T).Name, her çağrı için T ya da object gibi genel bir yer tutucuyu değil, gerçek çıkarımlanan tipi yansıtır.
Csharp Generics InterfacesZorluk 1
C#'ta bir extension method nasıl tanımlanır?
  • aStatic bir class içinde static bir metot olarak, ilk parametrenin önünde this ile.
  • bGenişletilen class'ın içinde virtual bir instance metodu olarak.
  • cHerhangi bir class içinde [Extension] attribute'ı ile işaretlenmiş bir metot olarak.
  • dOrijinal class tanımına eklenen partial bir metot olarak.
Açıklama:Extension method'lar static bir class içinde tanımlanmış static metotlar olmalıdır; ilk parametredeki this niteleyicisi derleyiciye hangi tipin genişletildiğini söyler ve metodun o tip üzerinde bir instance metodu gibi çağrılmasını sağlar.

3300 soruluk Backend bankasında kendini sına.

Mülakata başla