Dalam C#, kelas merupakan komponen utama penyusun program. Meskipun C# sebenarnya mengizinkan kita untuk membuat program utaman menggunakan tipe struktur, tapi pada kenyatannya yang banyak digunakan adalah tipe kelas. Ingat setiap program C# harus dibungkus ke dalam suatu kelas maupun struktur.
Esensinya, kelas adalah tipe data. Pada saat kita mendefinisikan kelas berarti kita sedang membuat tipe data baru. Dalam C#, kelas digolongkan ke dalam tipe referensi. Secara umum kelas terseusun dari data dan fungsi Data adalah atribut yang dimiliki oleh object dan fungsi adalah operasi (berupa kode) atau kemampuan yang dimiliki oleh object. Data yang terdapat di dalam suatu kelas disebut field dan fungsi disebut metode (method). Sebagai contoh, object manusia memiliki data seperti nama, jenis kelamin, tanggal lahir, berat badan, tinggi badan, dan sebagainya, sedangkan kemampuannya bisa berupa berjalan, bicara, makan, dan sebagainya.
Dalam konteks pemrograman, manusia dapat dijadikan sebagai tipe data baru dalam bentuk kelas. Sebenarnya kelas tidak jauh berbeda dengan tipe data sederhana (tipe nilai). Perbedaannya, tipe data sederhana digunakan untuk mendeklarasikan variabel normal, sedangkan kelas digunakan untuk mendeklarasi variabel yang menunjuk ke objek aktual. Variabel semacamnya ini dikenal dengan istilah referensi atau variabel referensi. Ada juga yang menyebutnya sebagai referendi object (object reference).
Perlu anda ketahui bahwa kelas masih bersifat abstrak. Saat mendefinisikan suatu kelas, kita hanya membuat tipe data baru, bukan membuat objek. Kita sama sekali belum memiliki objek dari tipe data tersebut. Objek baru akan dibuat ketika kita melakukan instansiasi kelas menggunakan kata kunci new. Instansiasi adalah istilah yang digunakan untuk menggambarkan proses pembuatan objek atau wujud nyata (instance) dari suatu kelas.
Â
Anggota kelas
Data dan fungsi yang terdapat di dalam di dalam suatu kelas disebut sebagai anggota kelas. Dalam C#, data dan fungsi dibedakan menjadi beberapa istilah rersendiri.Â
Â
 Anggota Kelas yang Berupa Data
Data adalah atribut-atribut kelas yang digunakan untuk menyimpan nilai. Dalam terminologi C#, data dibedakan menjadi field dan constant field. Field adalah variabel yang dideklarasikan di dalam kelas, sedangkan constant field adalah konstanta yang didefinisikan di dalam kelas dengan kata lain, constant field adalah field yang nilainya tetap dan harus diisikan pada saat pendefinisian kelas
Â
Anggota Kelas yang Berupa Fungsi
Fungsi adalah kelas yang berisi kumpulan statement untuk memanipulasi data dari kelas bersangkutan. Dalam C#, fungi dapat berupa metode, properti, event, indexer, operator, konstruktor, dan destruktor. Berikut ini adalah penjelasan singkat dari masing-masing jenis fungsi tersebut.
(-) Metode adalah fungsi yang didefinisikan di dalam kelas. Berbeda dengan C++, C# tidak mengizinkan suatu fungsi didefinisikan diluar kelas.
(-) Properti adalah fungsi yang dapat diakses dari luar kelas seperti field yang bersifat publik. C# menyediakan properti untuk membaca dan menulis nilai dari/ke dalam album suatu field. Melalui cara ini, Anda tidak perlu mengakses field secara langsung atau mendefinisikan fungsi Get() dan Set() di dalam kelas, seperti yang mungkin anda lakukan di dalam C++ maupun Java
(-) Event adalah fungsi yang berguna untuk menyampaikan jenis kejadian yang dapat menimpa object. Sebagai contoh, kelas System.Window.Form.Button memiliki event Click yang berguna untuk memberi notifikasi ke program bahwa objek dari kelas Button telah di klik.
(-) Indexer (Pengindeks) adalah fungsi yang mengizinkan objek dapat diindeks seperti layaknya array maupun koleksi.
(-) Operator adalah fungsi yang digunakan untuk melakukan overload terhadap suatu operator sehingga operator tersebut dapat diterapkan ke dalam objek.
(-) Konstruktor adalah fungsi khusus yang akan dipanggil secara otomatis pada saat objek dibuat. Nama fungsi harus sama dengan nama kelas dan tidak dapat memiliki tipe kembalian. Konsturktor pada umumnya digunakan untuk melakukan proses inisialisasi nilai.
(-)Â Destruktor (disebut juga finalizer) adalah fungsi khusus yang akan dipanggil secara otomatis pada saat CLR mendeteksi adanya objek yang sudah tidak digunakan lagi. Nama destruktor juga harus sama dengan nama kelas, tapi diawali dengan tanda tilde.Â
Â