Daftar Isi[Bersembunyi][Menunjukkan]
- 1. Apa sebenarnya C# itu?
- 2. Apa yang membedakan C# dari C?
- 3. Apa sebenarnya kelas itu?
- 4. Apa sebenarnya benda itu?
- 5. Apa perbedaan antara istilah statis, publik, dan kosong?
- 6. Tentukan Konstruktor.
- 7. Apa itu C# dalam pengumpulan sampah?
- 8. Apa sebenarnya arti struktur dalam C#?
- 9. Bagaimana kode C# dikompilasi?
- 10. Jelaskan dengan jelas berbagai kelas C#.
- 11. Apa sebenarnya Jagged Array itu?
- 12. Apa perbedaan antara parameter out dan ref?
- 13. Dalam C#, apa itu destruktor?
- 14. Dalam C#, apa itu pengindeks?
- 15. Apa perbedaan antara kode terkelola dan tidak terkelola?
- 16. Jelaskan serialisasi.
- 17. Dalam C#, bagaimana bidang dan properti berbeda satu sama lain?
- 18. Bagaimana Anda menjelaskan penggunaan pernyataan dalam C# secara detail?
- 19. Bagaimana Anda mengimplementasikan banyak antarmuka dengan nama metode yang sama di kelas yang sama?
- 20. Dalam C#, apa perbedaan antara Task dan Thread?
- 21. Apa fungsi finalisasi di C#?
- 22. Buat perbedaan antara menyelesaikan blok dan menyelesaikan.
- 23. Jelaskan metode pembuangan C# secara rinci.
- 24. Apa itu Kelebihan Metode C#? Menjelaskan.
- 25. Apa perbedaan antara read-only dan konstanta?
- 26. Apa itu Kontrol Pengguna dan Kontrol Kustom?
- 27. Dalam C#, apa itu delegasi multicast?
- 28. Apa sebenarnya objek pooling di C#?
- 29. Apa sebenarnya obat generik di C#.NET?
- 30. Apakah layak untuk mengesampingkan metode virtual privat?
- 31. Bedakan antara metode overloading dan metode overriding di C#?
- 32. Dalam C#, apa perbedaan antara String dan StringBuilder?
- 33. Apa sebenarnya delegasi itu?
- 34. Kapan Anda harus menggunakan multithreading di C# dan kapan Anda harus menghindarinya?
- 35. Dalam C#, apa itu delegasi multicast?
- 36. Dalam C#, apa perbedaan antara pengikatan akhir dan pengikatan awal?
- 37. Bedakan antara Directcast dan Ctype?
- 38. Bagaimana penggunaan HashSet di C#?
- 39. Tolong jelaskan Thread Pooling di C #.
- 40. Apa perbedaan antara kata kunci Const dan ReadOnly di C#?
- 41. Rincian apa tentang file C# XSD yang dapat Anda berikan?
- 42. Apa arti properti Get and Set Accessor bagi Anda?
- 43. Apa sebenarnya injeksi ketergantungan di C#?
- Kesimpulan
C# (sebelumnya dikenal sebagai C sharp) adalah bahasa pemrograman berorientasi objek yang sering digunakan oleh developer untuk melakukan beberapa aktivitas dan mencapai beberapa tujuan.
Bahasa pemrograman berorientasi objek, seperti C++, Python, dan Java, hadir dalam berbagai rasa. Bahasa pemrograman ini dirancang untuk berfungsi di dalam kerangka kerja tertentu. Demikian pula, C# dibuat dan dikembangkan untuk kerangka tertentu, yaitu NET.
Kerangka kerja .NET dibuat oleh Microsoft. Ini menyediakan platform yang luas untuk mengembangkan aplikasi, deklarasi, instruksi aplikasi, dan sebagainya. C# dapat digunakan untuk pengembangan web, game, aplikasi mobile, aplikasi windows, dan proyek serupa lainnya.
Dengan keunggulan seperti itu, penggunaan C# telah meluas, dan kebutuhan akan spesialis yang dapat menggunakannya secara akurat meningkat dua kali lipat. Karena C# sangat populer bahasa pemrograman, banyak perusahaan besar dan kecil mendasarkan produk mereka padanya.
Jadi, latihlah pertanyaan C# tingkat dasar dan lanjutan untuk menguasai wawancara.
1. Apa sebenarnya C# itu?
Microsoft C# adalah kontemporer, tujuan umum, pemrograman berorientasi objek bahasa. C# ditujukan untuk Infrastruktur Bahasa Umum (CLI), yang terdiri dari kode yang dapat dieksekusi dan lingkungan runtime yang memungkinkan penggunaan banyak bahasa tingkat tinggi pada beragam sistem dan arsitektur komputer.
2. Apa yang membedakan C# dari C?
C biasanya dikenal sebagai bahasa prosedural, sedangkan C# lebih berorientasi objek. Perbedaan utamanya adalah bahwa C# memungkinkan pengumpulan sampah otomatis melalui Common Language Runtime (CLR), sedangkan C tidak. C # membutuhkan kerangka kerja .NET untuk dijalankan, sedangkan C adalah bahasa yang tidak bergantung pada platform.
3. Apa sebenarnya kelas itu?
Kelas berfungsi sebagai templat untuk membangun objek. Seiring dengan teknik, ia memiliki atribut. Dari satu class, kita dapat menghasilkan beberapa instance dari sebuah objek.
4. Apa sebenarnya benda itu?
Instance kelas yang dikenal sebagai objek adalah cara kita mengakses fungsionalitas kelas. Untuk membuat objek, kita dapat menggunakan kata kunci “baru”. Fungsi, anggota data, dan perilaku kelas yang menghasilkan objek dalam memori disimpan.
5. Apa perbedaan antara istilah statis, publik, dan kosong?
Di mana saja dalam program dapat mengakses variabel yang ditentukan secara publik. Variabel statis dapat diakses secara global tanpa persyaratan untuk membangun instance kelas. Di C #, pengubah tipe yang disebut Void digunakan untuk menunjukkan tipe kembalian dari suatu metode.
6. Tentukan Konstruktor.
Konstruktor adalah fungsi anggota khusus kelas. Saat objek terbentuk, konstruktor dipanggil secara otomatis. Kelas membangun semua nilai anggota data saat diinisialisasi.
7. Apa itu C# dalam pengumpulan sampah?
Proses pembersihan memori yang telah ditempati oleh item yang tidak diinginkan dikenal sebagai pengumpulan sampah. Sejumlah memori tertentu secara otomatis ditetapkan ke objek kelas saat dibuat di memori heap. Sekarang setelah Anda selesai mengerjakan item tersebut, ruang memori yang sebelumnya digunakan akan terbuang sia-sia. Memori harus dibebaskan.
8. Apa sebenarnya arti struktur dalam C#?
Dalam C#, struktur adalah tipe data yang terdiri dari banyak tipe data, seperti metode, bidang, konstruktor, konstanta, properti, pengindeks, operator, dan bahkan struktur lainnya. Struktur membantu konsolidasi banyak jenis data menjadi satu unit. Dengan cara ini, mereka analog dengan kursus. Struktur adalah tipe nilai, sedangkan kelas adalah tipe referensi.
9. Bagaimana kode C# dikompilasi?
Ketika sebuah proyek dibuat, kode sumber C# dikompilasi menjadi Bahasa Menengah (IL). IL adalah kumpulan instruksi yang menghasilkan kode mesin untuk dieksekusi pada prosesor mesin. Kode dikirim dari preprocessor ke compiler, lalu ke assembler, dan terakhir ke linker dalam empat tahap.
10. Jelaskan dengan jelas berbagai kelas C#.
- Statis: Ini adalah jenis kelas yang tidak dapat diinstansiasi, oleh karena itu kita tidak dapat menggunakan kata kunci new untuk membuat objeknya, tetapi kita dapat memanggil anggota kelas secara langsung dengan menggunakan nama kelas mereka.
- Abstrak: Untuk mendefinisikan kelas abstrak, gunakan kata kunci abstrak. Tidak ada objek yang dapat dibuat untuk kelas abstrak. Itu harus diwariskan dalam subkelas jika Anda ingin menggunakannya. Definisi sederhana dari metode abstrak dan non-abstrak diperbolehkan dalam kelas Abstrak.
- Parsial: Kelas ini memungkinkan Anda untuk memisahkan properti, metode, dan peristiwa Anda menjadi beberapa file sumber, yang selanjutnya digabungkan menjadi satu kelas pada waktu pembuatan.
- Disegel: Kelas yang disegel tidak dapat diwariskan dari kelas lain dan memiliki karakteristik terbatas. Pengubah akses tidak dapat ditambahkan ke kelas tersegel.
11. Apa sebenarnya Jagged Array itu?
Array dengan elemen array disebut sebagai array bergerigi. Elemen Array Bergerigi bisa dari berbagai bentuk dan ukuran.
12. Apa perbedaan antara parameter out dan ref?
Saat memberikan argumen sebagai referensi, parameter harus diinisialisasi sebelum diteruskan ke metode. Sebaliknya, parameter out tidak perlu diinisialisasi sebelum diberikan ke suatu metode.
13. Dalam C#, apa itu destruktor?
Destruktor adalah jenis metode dalam C# yang merupakan bagian dari kelas. Fungsi utama destruktor adalah menghapus instance kelas ketika tidak lagi diperlukan untuk mengosongkan memori. Destruktor terkadang dikenal sebagai finalizer.
14. Dalam C#, apa itu pengindeks?
Pengindeks digunakan dalam C# untuk menemukan instance dari kelas atau struktur. Oleh karena itu, nilai yang diindeks dapat diakses dengan cara yang mirip dengan array, tetapi tanpa harus secara eksplisit mendeklarasikan tipe atau anggota instance.
15. Apa perbedaan antara kode terkelola dan tidak terkelola?
Kode terkelola memungkinkan Anda untuk menjalankan kode dalam kerangka .NET pada lingkungan runtime CLR terkelola.
Kode yang dikontrol dijalankan pada lingkungan runtime terkelola daripada sistem operasi. Menyediakan berbagai layanan seperti pengumpul sampah, penanganan pengecualian, dan sebagainya.
Kode yang tidak dikelola adalah kode yang tidak dijalankan di CLR dan beroperasi di luar kerangka kerja .NET. Mereka tidak menyediakan layanan bahasa tingkat tinggi dan beroperasi tanpa mereka. C++ adalah salah satu contohnya.
16. Jelaskan serialisasi.
Aliran byte harus dibuat dari item untuk mentransfernya melalui jaringan. Serialisasi adalah tindakan mengubah item menjadi aliran byte. Serialize Interface harus diimplementasikan agar item dapat diserialkan. Kebalikan dari membangun objek dari aliran byte disebut de-serialisasi.
17. Dalam C#, bagaimana bidang dan properti berbeda satu sama lain?
Bidang adalah anggota kelas atau objek apa pun yang berfungsi sebagai lokasi untuk menyimpan data, sedangkan properti adalah anggota kelas yang menawarkan metode untuk membaca, menulis, dan menghitung nilai bidang pribadi.
18. Bagaimana Anda menjelaskan penggunaan pernyataan dalam C# secara detail?
Pernyataan using digunakan untuk membatasi penggunaan satu atau lebih sumber daya dalam aplikasi. Sumber daya dikonsumsi dan dilepaskan secara konstan.
Tugas utama pernyataan ini adalah mengelola sumber daya yang tidak diinginkan dan melepaskannya secara otomatis. Setelah objek yang memanfaatkan sumber daya terbentuk, pastikan fungsi pembuangan objek dipanggil untuk melepaskan sumber daya yang diperlukan oleh objek tersebut; di sinilah menggunakan pernyataan berguna.
19. Bagaimana Anda mengimplementasikan banyak antarmuka dengan nama metode yang sama di kelas yang sama?
Untuk mengimplementasikan beberapa antarmuka dengan nama metode yang sama, hindari mengimplementasikannya di dalam badan fungsi. Sebagai gantinya, Anda akan memberikan nama antarmuka secara langsung di badan metode. Kompiler akan mengenali metode antarmuka mana yang direferensikan, mengatasi masalah tersebut.
20. Dalam C#, apa perbedaan antara Task dan Thread?
Utas adalah utas Sistem Operasi nyata dengan tumpukan dan sumber daya kernelnya sendiri. Utas memberikan kontrol paling banyak. Utas memungkinkan Anda untuk Membatalkan (), Menangguhkan (), atau Melanjutkan (). Status Thread dapat diamati atau atributnya, seperti ukuran tumpukan, status apartemen, dan budaya, dapat diatur. CLR menyimpan kumpulan utas yang dibungkus oleh ThreadPool.
Perpustakaan Paralel Tugas memiliki kelas yang disebut Tugas. Berbeda dengan ThreadPool, Task tidak memiliki utas Sistem Operasi sendiri. Tugas dijalankan oleh Penjadwal Tugas, meskipun penjadwal default dijalankan oleh ThreadPool. Dimungkinkan untuk diberi tahu saat Tugas selesai dan untuk mendapatkan hasilnya.
21. Apa fungsi finalisasi di C#?
Kelas objek yang digunakan untuk tindakan pembersihan mendefinisikan fungsi finalisasi (). Saat referensi ke suatu objek tidak digunakan dalam jangka waktu lama, pengumpul sampah akan sering memanggil fungsi ini.
Pengumpul sampah secara otomatis membebaskan sumber daya yang dikontrol, tetapi jika Anda ingin membebaskan sumber daya yang tidak dibutuhkan seperti pegangan file, koneksi data, dan sebagainya, Anda harus secara eksplisit mengimplementasikan fungsi finalisasi.
22. Buat perbedaan antara menyelesaikan blok dan menyelesaikan.
Blok selesai dipanggil setelah blok coba-dan-tangkap selesai karena diperlukan untuk penanganan pengecualian. Blok kode dijalankan terlepas dari apakah pengecualian tertangkap. Kode blok umumnya lebih bersih.
Metode finalisasi dipanggil tepat sebelum pengumpulan sampah. Tanggung jawab utama metode yang telah diselesaikan adalah membersihkan kode yang tidak terkelola, yang secara otomatis dipicu setiap kali sebuah instance tidak dipanggil kembali.
23. Jelaskan metode pembuangan C# secara rinci.
Fungsidisposof() membebaskan sumber daya objek yang tidak terpakai. Sumber daya yang tidak terpakai, seperti file, koneksi data, dan lain sebagainya. Fungsi ini ditentukan dalam antarmuka IDisposable, yang diimplementasikan oleh kelas dengan mendeklarasikan badan antarmuka IDisposable.
Fungsi buang tidak dipanggil secara otomatis; programmer harus mengimplementasikannya secara manual untuk pemanfaatan sumber daya yang efektif.
24. Apa itu Kelebihan Metode C#? Menjelaskan.
Kelebihan metode adalah pendekatan khas dalam C# yang digunakan untuk membangun sejumlah metode dengan nama yang sama dan tanda tangan yang ditentukan. Prosedur ini diulangi dengan kelas yang sama.
Ketika prosedur kelebihan beban metode selesai, kompiler memulai operasi untuk memanggil tindakan tertentu berdasarkan kelebihan beban metode.
25. Apa perbedaan antara read-only dan konstanta?
Variabel konstan dideklarasikan dan diinisialisasi selama kompilasi. Setelah itu, nilai ini tidak dapat diubah. Di sisi lain, read-only digunakan setelah nilai dialokasikan pada waktu berjalan.
26. Apa itu Kontrol Pengguna dan Kontrol Kustom?
Kode yang dikompilasi digunakan untuk mengembangkan kontrol khusus. Ini mungkin termasuk dalam kotak alat dan mudah digunakan. Dengan menyeret dan melepaskan kontrol ini, pengembang dapat memasukkannya ke dalam formulir web mereka.
Kontrol pengguna dan file yang disertakan ASP sangat mirip. Mereka juga mudah dibuat. Kontrol pengguna, di sisi lain, tidak dapat ditambahkan ke toolbox. Mereka juga tidak bisa ditarik dan dijatuhkan darinya.
27. Dalam C#, apa itu delegasi multicast?
Delegasi multicast mempertahankan referensi atau alamat ke beberapa fungsi pada saat yang bersamaan. Saat kami memanggil delegasi multicast, itu juga akan memanggil semua fungsi lain yang dirujuknya. Untuk memanggil beberapa metode, gunakan seluruh tanda tangan metode, seperti halnya delegasi. Sebagai contoh:
28. Apa sebenarnya objek pooling di C#?
Pengumpulan objek adalah teknik desain dalam perangkat lunak yang mendaur ulang sesuatu daripada membangunnya kembali. Ini menyelesaikan ini dengan menyimpan item yang dipilih dalam kumpulan dan membuatnya tersedia untuk digunakan saat aplikasi memintanya. Prosedur ini meningkatkan kinerja dengan mengurangi pembuatan objek yang tidak perlu.
29. Apa sebenarnya obat generik di C#.NET?
Generik digunakan untuk membuat kelas kode yang dapat digunakan kembali untuk mengurangi redundansi kode, meningkatkan keamanan jenis, dan meningkatkan kecepatan. Kami dapat membangun kelas koleksi dengan obat generik.
Dalam Sistem, namespace generik harus digunakan sebagai ganti kelas seperti ArrayList. Namespace untuk koleksi. Penggunaan tipe parameter didorong oleh obat generik.
30. Apakah layak untuk mengesampingkan metode virtual privat?
Metode virtual pribadi tidak dapat diganti karena bersifat pribadi untuk kelas dan tidak dapat diakses dari luar.
31. Bedakan antara metode overloading dan metode overriding di C#?
Metode overriding adalah proses mengubah definisi fundamental kelas turunan. Metode kelas turunan pada akhirnya berperilaku berbeda sebagai hasil dari strategi ini.
Kelebihan metode, di sisi lain, dapat digambarkan sebagai tindakan menghasilkan banyak metode dengan nama yang sama tetapi tanda tangan yang berbeda di bawah kelas yang sama.
32. Dalam C#, apa perbedaan antara String dan StringBuilder?
Objek string tidak dapat diubah, yang artinya tidak dapat diubah setelah dibuat. Setiap upaya untuk mengubah objek string akan menghasilkan pembuatan objek string baru.
Objek pembuat string, di sisi lain, dapat ditempa dan dapat diubah sesuai keinginan pengembang.
33. Apa sebenarnya delegasi itu?
Dalam C++, delegasi pada dasarnya sama dengan penunjuk fungsi. Satu-satunya perbedaan antara keduanya adalah bahwa delegasi aman untuk tipe sedangkan pointer fungsi tidak. Delegasi diperlukan karena mereka memungkinkan konstruksi fungsi aman tipe generik.
34. Kapan Anda harus menggunakan multithreading di C# dan kapan Anda harus menghindarinya?
Multithreading, sering dikenal sebagai threading, adalah pendekatan yang efektif untuk meningkatkan kecepatan program di mana banyak aktivitas dijalankan secara bersamaan. Ini memungkinkan berbagai utas untuk dieksekusi secara independen, daripada menunggu langkah sebelumnya diselesaikan. Ini memiliki kemampuan untuk meningkatkan kecepatan program.
Namun, ketika beberapa proses program saling berhubungan, multithreading tidak disarankan. Misalnya, jika Langkah B bergantung pada Langkah A diselesaikan terlebih dahulu, multithreading akan menyebabkan masalah kinerja dan kelemahan perangkat lunak. Threading menjadi semakin sensitif saat program berkembang dalam kompleksitas.
35. Dalam C#, apa itu delegasi multicast?
Delegasi multicast dalam C#, berbeda dengan delegasi dasar, mengacu pada berbagai metode target. Ketika delegasi multicast digunakan, semua fungsi yang ditunjuk oleh delegasi dipanggil. Mereka diimplementasikan dengan bantuan kelas MulticastDelegate sistem.
36. Dalam C#, apa perbedaan antara pengikatan akhir dan pengikatan awal?
- Pengikatan awal terjadi pada waktu kompilasi, sedangkan pengikatan akhir terjadi selama waktu proses.
- Pengikatan akhir seringkali lebih lambat daripada pengikatan awal karena terjadi saat waktu proses.
- Berbeda dengan pengikatan akhir, yang menggunakan objek untuk menyelesaikan panggilan metode, pengikatan awal menyelesaikan panggilan metode menggunakan informasi kelas.
37. Bedakan antara Directcast dan Ctype?
Jenis objek yang memerlukan tipe run-time agar cocok dengan tipe yang ditentukan di DirectCast dikonversi menggunakan DirectCast.
Saat konversi ditentukan antara ekspresi dan tipe, Ctype digunakan.
38. Bagaimana penggunaan HashSet di C#?
Di C #, HashSet adalah kumpulan nilai berbeda yang tidak terurut. Secara umum, ini digunakan untuk mencegah elemen duplikat dimasukkan ke dalam koleksi, dan kinerjanya lebih baik daripada daftar pada tugas ini.
Kelas HashSet, yang diturunkan dari Sistem, digunakan untuk mengimplementasikannya.
39. Tolong jelaskan Thread Pooling di C #.
Di C #, kumpulan utas adalah kumpulan utas. Utas ini digunakan untuk melakukan tugas tanpa mengganggu fungsionalitas utas utama. Utas di kumpulan utas kembali ke kumpulan utas setelah selesai berjalan.
Kelas Sistem berisi kelas yang menangani utas di kumpulan utas dan tindakannya. Mengulir. ThreadPool adalah ruang nama.
40. Apa perbedaan antara kata kunci Const dan ReadOnly di C#?
- ReadOnly tidak dapat dideklarasikan di dalam metode, sedangkan Const bisa.
- Const adalah konstanta waktu kompilasi, sedangkan ReadOnly adalah konstanta runtime.
- Nilai ReadOnly dapat diubah, tetapi nilai Const tidak bisa.
41. Rincian apa tentang file C# XSD yang dapat Anda berikan?
XSD adalah singkatan dari Definisi Skema XML. Jika tidak ada file XSD yang terhubung dengan file XML, file tersebut dapat memiliki atribut, elemen, dan tag apa pun. File XSD menyediakan kerangka kerja untuk file XML, menentukan komponen dan atribut apa yang harus ada dalam file XML serta urutannya.
42. Apa arti properti Get and Set Accessor bagi Anda?
Di C #, Dapatkan dan Setel disebut pengakses karena dibuat menggunakan properti. Properti memungkinkan membaca dan menulis ke nilai bidang pribadi. Bidang pribadi tersebut diakses melalui pengakses.
Sementara properti Get digunakan untuk mengembalikan nilai properti, properti Set digunakan untuk mengatur nilainya.
43. Apa sebenarnya injeksi ketergantungan di C#?
Injeksi ketergantungan (DI) adalah teknik desain dalam C # yang digunakan untuk membuat pemrograman yang terhubung secara longgar. Prosedur ini mentransfer pembuatan dan pengikatan objek dependen di luar kelas tempat mereka bergantung. Tujuan utamanya adalah membuat modifikasi kode di masa mendatang lebih mudah dikelola.
Kesimpulan
C # adalah bahasa pemrograman utama yang digunakan di semua bahasa pemrograman tingkat tinggi. Pengembang C# sangat diminati dan dapat menemukan prospek karir yang menarik di industri seperti pengembangan front-end, pemrograman back-end, dan pengembangan aplikasi. Dan karena Microsoft mendukungnya, popularitas C# hanya akan tumbuh.
Yang disebutkan di atas adalah pertanyaan wawancara C # yang paling penting untuk para profesional dan pemula yang berpengalaman. Melihat Seri Wawancara Hashdork untuk membantu persiapan wawancara.
Tinggalkan Balasan