50 Pertanyaan dan Jawaban Wawancara C# Teratas (2025)

C# Pertanyaan dan Jawaban Wawancara untuk Mahasiswa Baru dan Pengalaman 2/3/5/10 Tahun

Berikut adalah pertanyaan dan jawaban wawancara C# untuk kandidat baru dan berpengalaman 5 atau 10 tahun untuk mendapatkan pekerjaan impian mereka.

1) Apa itu C#?

C# adalah bahasa berorientasi objek, aman untuk tipe, dan terkelola yang dikompilasi oleh kerangka .Net untuk menghasilkan Microsoft Bahasa Menengah.

Unduh PDF Gratis: C# Wawancara Pertanyaan & Jawaban Wawancara


2) Jelaskan jenis-jenis komentar di C# dengan contoh-contoh

Garis tunggal

Contoh:

//This is a single line comment

ii. Beberapa baris (/* */)

Contoh:

/*This is a multiple line comment
We are in line 2
Last line of comment*/

aku aku aku. Komentar XML (///).

Contoh:

/// summary;
/// Set error message for multilingual language.
/// summary

3) Bisakah beberapa blok tangkapan dieksekusi?

Tidak, Beberapa blok tangkapan dengan tipe serupa tidak dapat dijalankan. Setelah kode tangkapan yang tepat dieksekusi, kontrol ditransfer ke blok akhirnya, dan kemudian kode yang mengikuti blok akhirnya dieksekusi.


4) Apa perbedaan antara publik, statis, dan kosong?

Variabel atau metode yang dideklarasikan publik dapat diakses di mana saja dalam aplikasi. Variabel atau metode yang dideklarasikan secara statis dapat diakses secara global tanpa membuat turunan kelas. Anggota statis secara default tidak dapat diakses secara global, hal ini bergantung pada jenis modifikasi akses yang digunakan. Kompilator menyimpan alamat metode sebagai titik masuk dan menggunakan informasi ini untuk memulai eksekusi sebelum objek apa pun dibuat. Dan Void adalah pengubah tipe yang menyatakan bahwa metode atau variabel tidak mengembalikan nilai apa pun.

Objek di C#

C# pertanyaan wawancara


5) Apa yang dimaksud dengan benda?

Objek adalah turunan dari kelas yang melaluinya kita mengakses metode kelas tersebut. Kata kunci “Baru” digunakan untuk membuat objek. Kelas yang membuat objek di memori akan berisi informasi tentang metode, variabel, dan perilaku kelas tersebut.


6) Tentukan Konstruktor

Konstruktor adalah fungsi anggota dalam suatu kelas yang mempunyai nama yang sama dengan kelasnya. Konstruktor secara otomatis dipanggil setiap kali kelas objek dibuat. Ini membangun nilai anggota data saat menginisialisasi kelas.


7) Apa itu Array Bergerigi?

Array yang memiliki elemen bertipe array disebut jagged Array. Elemen-elemennya dapat memiliki dimensi dan ukuran yang berbeda. Kita juga bisa menyebut Array bergerigi sebagai Array dari array.


8) Apa perbedaan antara parameter ref & out?

Argumen yang diteruskan sebagai ref harus diinisialisasi sebelum diteruskan ke metode, sedangkan parameter out tidak perlu diinisialisasi sebelum diteruskan ke suatu metode.


9) Apa gunanya pernyataan 'menggunakan' di C#?

Blok 'using' digunakan untuk mendapatkan sumber daya dan memprosesnya lalu secara otomatis membuangnya ketika eksekusi blok selesai.


10) Apa itu serialisasi?

Ketika kita ingin mengangkut suatu objek melalui jaringan, maka kita harus mengubah objek tersebut menjadi aliran byte. Proses mengubah suatu objek menjadi aliran byte disebut Serialisasi. Agar suatu objek dapat diserialkan, ia harus mengimplementasikan ISerialize Interface. De-serialisasi adalah proses kebalikan dari pembuatan objek dari aliran byte.


11) Bisakah kita menggunakan perintah “ini” dalam metode statis?

Kita tidak dapat menggunakan 'Ini' dalam metode statis karena kita hanya dapat menggunakan variabel/metode statis dalam metode statis.


12) Apa perbedaan antara konstanta dan hanya-baca?

Variabel konstan dideklarasikan dan diinisialisasi pada waktu kompilasi. Nilainya tidak dapat diubah setelahnya. Read-only digunakan hanya ketika kita ingin memberikan nilai pada saat run time.


13) Apa yang dimaksud dengan kelas antarmuka? Berikan salah satu contohnya

Antarmuka adalah kelas abstrak yang hanya memiliki metode abstrak publik, dan metode tersebut hanya memiliki deklarasi dan bukan definisi. Metode abstrak ini harus diimplementasikan di kelas yang diwarisi.

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) Apa yang dimaksud dengan tipe nilai dan tipe referensi?

Tipe nilai menyimpan nilai data dalam ruang memorinya sendiri. Contoh

int a = 30;

Tipe referensi menyimpan alamat Objek dimana nilai disimpan. Ini adalah penunjuk ke lokasi memori lain.

string b = "Hello Guru99!!";

15) Apa itu Kontrol Kustom dan Kontrol Pengguna?

Kontrol Kustom adalah kontrol yang dihasilkan sebagai kode yang dikompilasi (Dll), yang lebih mudah digunakan dan dapat ditambahkan ke kotak peralatan. Pengembang dapat menyeret dan melepas kontrol ke formulir web mereka. Atribut dapat, pada waktu desain. Kita dapat dengan mudah menambahkan kontrol kustom ke Beberapa Aplikasi (Jika Dll Bersama). Jadi, Jika bersifat pribadi, maka kita dapat menyalin ke dll ke direktori bin aplikasi web dan kemudian menambahkan referensi dan dapat menggunakannya.

Kontrol Pengguna sangat mirip dengan file ASP, dan mudah dibuat. Kontrol pengguna tidak dapat ditempatkan di kotak peralatan dan diseret-lepas dari kotak peralatan. Kontrol pengguna memiliki desain dan kode di baliknya. Ekstensi file untuk kontrol pengguna adalah ascx.


16) Apa yang dimaksud dengan kelas tersegel di C#?

Kami membuat kelas tersegel ketika kami ingin membatasi kelas yang akan diwarisi. Pengubah tertutup digunakan untuk mencegah derivasi dari suatu kelas. Jika kita secara paksa menetapkan kelas tersegel sebagai kelas dasar, maka kesalahan waktu kompilasi akan terjadi.


17) Apa yang dimaksud dengan metode kelebihan beban?

Kelebihan metode adalah membuat beberapa metode dengan nama yang sama dengan tanda tangan unik di kelas yang sama. Saat kami mengkompilasi, kompiler menggunakan resolusi kelebihan beban untuk menentukan metode spesifik yang akan dipanggil.


18) Apa perbedaan antara Array dan Daftar Array?

Dalam sebuah array, kita hanya dapat memiliki item dengan tipe yang sama. Ukuran array tetap jika dibandingkan. Daftar array mirip dengan array, tetapi tidak memiliki ukuran tetap.


19) Bisakah metode virtual privat ditimpa?

Tidak, karena tidak dapat diakses di luar kelas.


20) Jelaskan pengubah aksesibilitas “internal yang dilindungi”.

Variabel/metode internal yang dilindungi dapat diakses dalam rakitan yang sama dan juga dari kelas yang diturunkan dari kelas induk ini.


21) Apa perbedaan antara kelas System.String dan System.Text.StringBuilder?

System.String tidak dapat diubah. Saat kita mengubah nilai variabel string, memori baru dialokasikan ke nilai baru dan alokasi memori sebelumnya dilepaskan. System.StringBuilder dirancang untuk memiliki konsep string yang dapat diubah di mana berbagai operasi dapat dilakukan tanpa mengalokasikan lokasi memori terpisah untuk string yang dimodifikasi.


22) Apa perbedaan antara System.Array.CopyTo() dan System.Array.Clone() ?

Menggunakan Clone() metode, kami membuat objek array baru yang berisi semua elemen dalam Array asli dan menggunakan CopyTo() metode. Semua elemen array yang ada disalin ke array lain yang sudah ada. Kedua metode tersebut melakukan penyalinan dangkal.


23) Bagaimana kita mengurutkan elemen Array dalam urutan menurun?

Menggunakan Sort() metode yang diikuti oleh Reverse() Metode.


24) Tuliskan sintaks C# untuk menangkap pengecualian

Untuk menangkap pengecualian, kami menggunakan blok coba-tangkap. Blok tangkapan dapat memiliki parameter tipe system.Exception.

Misalnya:

try {
    GetAllData();
} 
catch (Exception ex) {
}

Pada contoh di atas, kita dapat menghilangkan parameter dari pernyataan catch.


25) Apa perbedaan antara antarmuka dan kelas abstrak?

Antarmuka memiliki semua metode yang hanya memiliki deklarasi tetapi tidak memiliki definisi. Di kelas abstrak, kita dapat memiliki beberapa metode konkrit. Di kelas antarmuka, semua metode bersifat publik. Kelas abstrak mungkin memiliki metode privat.


26) Apa perbedaan antara metode Finalize() dan Dispose()?

Dispose() dipanggil ketika kita ingin suatu objek melepaskan sumber daya yang tidak dikelola bersamanya. Di samping itu, Finalize() digunakan untuk tujuan yang sama, tetapi tidak menjamin pengumpulan sampah suatu objek.


27) Apa yang dimaksud dengan referensi melingkar?

Referensi melingkar adalah situasi di mana dua atau lebih sumber daya saling bergantung satu sama lain menyebabkan kondisi terkunci dan membuat sumber daya tidak dapat digunakan.


28) Apa yang dimaksud dengan obat generik di C#.NET?

Generik digunakan untuk membuat kelas kode yang dapat digunakan kembali guna mengurangi redundansi kode, meningkatkan keamanan tipe, dan kinerja. Dengan menggunakan generik, kita dapat membuat kelas koleksi. Untuk membuat koleksi generik, namespace System.Collections.Generic harus digunakan sebagai ganti kelas seperti ArrayList di namespace System.Collections. Generik mendukung penggunaan tipe berparameter.


29) Apa yang dimaksud dengan kumpulan objek di .NET?

Kumpulan objek adalah wadah yang memiliki objek yang siap digunakan. Ini melacak objek yang sedang digunakan, jumlah total objek di kumpulan. Hal ini mengurangi biaya pembuatan dan pembuatan ulang objek.


30) Buat daftar jenis pengecualian yang umum digunakan di .net

ArgumentException, ArgumentNullException, ArgumentOutOfRangeException, ArithmeticException, DivideByZeroException, OverflowException, IndexOutOfRangeException, InvalidCastException, Tidak ValidOperationException, IOEndOfStreamException, NullReferenceException, OutOfMemoryException, StackOverflowException dll.


31) Apa yang dimaksud dengan Pengecualian Khusus?

Terkadang ada beberapa kesalahan yang perlu ditangani sesuai kebutuhan pengguna. Pengecualian khusus digunakan untuk mereka dan digunakan pengecualian yang ditentukan.


32) Apa itu delegasi?

Delegasinya sama dengan penunjuk fungsi C++, tetapi satu-satunya perbedaan adalah tipenya aman, tidak seperti penunjuk fungsi. Delegasi diperlukan karena mereka dapat digunakan untuk menulis fungsi aman tipe yang lebih umum.


33) Bagaimana Anda mewarisi suatu kelas ke kelas lain di C#?

Titik dua digunakan sebagai operator pewarisan dalam C#. Cukup tempatkan titik dua lalu nama kelas.

public class DerivedClass : BaseClass

34) Dari mana semua kelas berasal dari kelas dasar di .net?

System.Object

35) Apa perbedaan antara penggantian metode dan kelebihan metode?

Dalam penggantian metode, kami mengubah definisi metode di kelas turunan yang mengubah perilaku metode. Kelebihan metode adalah membuat metode dengan nama yang sama dalam kelas yang sama dan memiliki tanda tangan berbeda.


36) Apa saja cara-cara berbeda yang dapat dilakukan suatu metode untuk kelebihan beban?

Metode dapat di-overload menggunakan tipe data yang berbeda untuk suatu parameter, urutan parameter yang berbeda, dan jumlah parameter yang berbeda.


37) Mengapa Anda tidak dapat menentukan pengubah aksesibilitas untuk metode di dalam antarmuka?

Dalam sebuah antarmuka, kami memiliki metode virtual yang tidak memiliki definisi metode. Semua metode ada untuk ditimpa di kelas turunan. Itu sebabnya semuanya bersifat publik.


38) Bagaimana cara mengatur kelas agar diwarisi, namun mencegah agar metode tidak ditimpa?

Deklarasikan kelas sebagai publik dan buat metode tersegel untuk mencegahnya ditimpa.


39) Apa yang terjadi jika antarmuka yang diwariskan memiliki nama metode yang bertentangan?

Implementasinya tergantung pada Anda karena metode tersebut ada di dalam kelas Anda sendiri. Mungkin ada masalah ketika metode dari antarmuka yang berbeda mengharapkan data yang berbeda, tetapi sejauh menyangkut kompiler, Anda baik-baik saja.


40) Apa perbedaan antara Struktur dan Kelas?

Struktur adalah variabel tipe nilai, dan kelas adalah tipe referensi. Struktur yang disimpan di Stack menyebabkan overhead tambahan tetapi pengambilan lebih cepat. Struct tidak dapat diwariskan.


41) Bagaimana cara menggunakan tipe nullable di .Net?

Tipe nilai dapat mengambil nilai normal atau nilai nol. Tipe seperti ini disebut tipe nullable.

Int? someID = null;
If(someID.HasVAlue)
{
}

42) Bagaimana kita bisa membuat array dengan nilai non-default?

Kita dapat membuat array dengan nilai non-default menggunakan Enumerable.Repeat.


43) Apa perbedaan antara operator “is” dan “as” di c#?

Operator “is” digunakan untuk memeriksa kompatibilitas suatu objek dengan tipe tertentu, dan mengembalikan hasil sebagai Boolean.

Operator “as” digunakan untuk mengubah suatu objek menjadi suatu tipe atau kelas.


44) Apa yang dimaksud dengan delegasi multicast?

Delegasi yang memiliki banyak penangan yang ditugaskan padanya disebut delegasi multicast. Setiap penangan ditugaskan ke suatu metode.


45) Apa yang dimaksud dengan pengindeks di C# .NET?

Pengindeks dikenal pintar array di C#. Hal ini memungkinkan instance kelas diindeks dengan cara yang sama seperti array.

Misalnya:

public int this[int index]    // Indexer declaration

46) Apa perbedaan antara "melempar" dan "melempar ex" di .NET?

Pernyataan "Throw" mempertahankan tumpukan kesalahan asli sedangkan "throw ex" memiliki jejak tumpukan dari titik lemparannya. Selalu disarankan untuk menggunakan “throw” karena memberikan informasi kesalahan yang lebih akurat.


47) Apa atribut C# dan signifikansinya?

C# memberi pengembang cara untuk mendefinisikan tag deklaratif pada entitas tertentu, misalnya. Kelas, metode, dll. disebut atribut. Informasi atribut dapat diambil saat runtime menggunakan Refleksi.


48) Bagaimana cara mengimplementasikan pola desain tunggal di C#?

Dalam pola tunggal, suatu kelas hanya dapat memiliki satu instance dan menyediakan jalur akses ke instance tersebut secara global.

Misalnya:

Public sealed class Singleton
{
Private static readonly Singleton _instance = new Singleton();
}

49) Apa perbedaan antara directcast dan ctype?

DirectCast digunakan untuk mengonversi tipe objek yang memerlukan tipe run-time sama dengan tipe yang ditentukan di DirectCast.

Ctype digunakan untuk konversi di mana konversi ditentukan antara ekspresi dan tipe.


50) Apakah kode C# merupakan kode yang dikelola atau tidak?

C# adalah kode yang dikelola karena runtime bahasa umum dapat mengkompilasi kode C# ke bahasa Menengah.


51) Apa itu aplikasi Konsol?

Aplikasi konsol adalah aplikasi yang dapat dijalankan pada command prompt di Windows. Untuk apa pun pemula di .Net, membangun aplikasi konsol idealnya merupakan langkah pertama.


52) Berikan contoh penghapusan elemen dari antrian

Metode dequeue digunakan untuk menghapus elemen dari antrian.

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();
   }
 }
}

Pertanyaan wawancara ini juga akan membantu dalam viva Anda (lisan)