Memahami Refleksi dalam C#
Gunakan refleksi untuk memeriksa dan memanipulasi objek saat runtime
Memahami Refleksi dalam C# adalah pelajaran C# Academy gratis di CoddyKit. Ini adalah pelajaran 5 dari 5. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar C# Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus C# Academy mencakup 5 pelajaran total.
Pengenalan Refleksi
Memahami Refleksi dalam C#
Selamat datang di pelajaran berikutnya! Dalam pelajaran ini, Anda akan mempelajari refleksi dalam C#, sebuah fitur canggih yang memungkinkan Anda memeriksa dan berinteraksi dengan tipe serta objek saat program berjalan. Mari mulai!

Apa Itu Refleksi
Apa Itu Refleksi?
Refleksi adalah kemampuan program untuk memeriksa dan memanipulasi strukturnya sendiri saat program berjalan. Refleksi biasanya digunakan untuk:
- Mengakses metadata tentang tipe, metode, dan properti.
- Memanggil metode secara dinamis dan mengakses bidang.
- Membangun kerangka kerja dan alat seperti alat serialisasi serta ORM.
Poin Utama: Refleksi merupakan bagian dari ruang nama System.Reflection.
Mengakses Informasi Tipe
Mengakses Informasi Tipe
Gunakan kelas Type untuk mengakses metadata tentang suatu tipe. Contoh:
Kiat: Gunakan GetProperties, GetMethods, dan GetFields untuk memeriksa anggota tipe.
using System;
class SampleClass {
public int Id { get; set; }
public string Name { get; set; }
}
class Program {
static void Main() {
Type type = typeof(SampleClass);
Console.WriteLine("Type Name: " + type.Name);
Console.WriteLine("Properties:");
foreach (var prop in type.GetProperties()) {
Console.WriteLine("- " + prop.Name);
}
}
}
Membuat Objek secara Dinamis
Membuat Objek secara Dinamis
Anda dapat menggunakan refleksi untuk membuat instans suatu kelas secara dinamis. Contoh:
Poin Utama: Gunakan Activator.CreateInstance untuk membuat objek saat program berjalan.
using System;
class SampleClass {
public string Name { get; set; }
}
class Program {
static void Main() {
Type type = typeof(SampleClass);
object instance = Activator.CreateInstance(type);
var property = type.GetProperty("Name");
property.SetValue(instance, "Reflection Example");
Console.WriteLine("Name: " + property.GetValue(instance));
}
}
Memanggil Metode secara Dinamis
Memanggil Metode secara Dinamis
Refleksi memungkinkan Anda memanggil metode saat program berjalan tanpa mengetahuinya pada waktu kompilasi. Contoh:
Kiat: Gunakan GetMethod dan Invoke untuk pemanggilan metode dinamis.
using System;
class SampleClass {
public void Greet(string name) {
Console.WriteLine("Hello, " + name);
}
}
class Program {
static void Main() {
Type type = typeof(SampleClass);
object instance = Activator.CreateInstance(type);
var method = type.GetMethod("Greet");
method.Invoke(instance, new object[] { "World" });
}
}
Bekerja dengan Atribut
Bekerja dengan Atribut
Refleksi dapat digunakan untuk memeriksa attributes khusus yang diterapkan pada tipe, metode, atau properti. Contoh:
Poin Utama: Gunakan GetCustomAttributes untuk mengambil informasi atribut.
using System;
[AttributeUsage(AttributeTargets.Class)]
class SampleAttribute : Attribute {
public string Description { get; }
public SampleAttribute(string description) {
Description = description;
}
}
[Sample("This is a sample class.")]
class SampleClass {}
class Program {
static void Main() {
Type type = typeof(SampleClass);
var attributes = type.GetCustomAttributes(typeof(SampleAttribute), false);
foreach (SampleAttribute attr in attributes) {
Console.WriteLine("Description: " + attr.Description);
}
}
}
Tantangan Latihan
Tantangan Latihan
Buat program yang menggunakan refleksi untuk memeriksa sebuah kelas, mencantumkan metode dan propertinya, lalu memanggil salah satu metodenya secara dinamis. Contoh:
using System;
class SampleClass {
public int Add(int a, int b) {
return a + b;
}
}
class Program {
static void Main() {
Type type = typeof(SampleClass);
Console.WriteLine("Methods:");
foreach (var method in type.GetMethods()) {
Console.WriteLine("- " + method.Name);
}
object instance = Activator.CreateInstance(type);
var addMethod = type.GetMethod("Add");
int result = (int)addMethod.Invoke(instance, new object[] { 5, 3 });
Console.WriteLine("Result of Add: " + result);
}
}
Praktik Terbaik dalam Menggunakan Refleksi
Praktik Terbaik dalam Menggunakan Refleksi
Berikut beberapa praktik terbaik:
- Gunakan refleksi secukupnya karena dapat memengaruhi kinerja.
- Simpan hasil refleksi dalam tembolok untuk meningkatkan efisiensi pada pemanggilan berulang.
- Jika memungkinkan, utamakan solusi waktu kompilasi daripada refleksi.
- Gunakan refleksi untuk skenario dinamis seperti pengaya dan kerangka kerja.
Kiat: Gabungkan refleksi dengan attributes khusus untuk aplikasi yang fleksibel dan dinamis.
Kerja bagus!
Kerja bagus!
Selamat! Anda telah mempelajari cara menggunakan refleksi untuk memeriksa dan memanipulasi tipe saat program berjalan dalam C#. Ini mengakhiri kategori "Fitur C# Lanjutan". Mari lanjutkan ke petualangan pemrograman berikutnya!

Pertanyaan yang Sering Diajukan
Apakah pelajaran “Memahami Refleksi dalam C#” gratis?
Ya — teks lengkap “Memahami Refleksi dalam C#” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus C# Academy, upgrade ke CoddyKit PRO. Kursus C# Academy mencakup 5 pelajaran total.
Apa yang akan aku pelajari di “Memahami Refleksi dalam C#”?
Gunakan refleksi untuk memeriksa dan memanipulasi objek saat runtime Kamu berlatih C# Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai C# Academy?
Tidak diperlukan pengalaman sebelumnya. C# Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 5 dari 5.
Berapa lama pelajaran “Memahami Refleksi dalam C#” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran C# Academy ini?
Ya. Setiap pelajaran C# Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Generik dalam C#
- Async dan Await: Bekerja dengan Kode Asinkron
- Memahami Threading dan Tugas
- Menjelajahi Delegasi dan Lambda
- Memahami Refleksi dalam C#