Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
C# dan Python berbagi konsep serupa. Konstruksi yang akrab ini membantu Anda mempelajari C# ketika Anda sudah mengenal Python.
- Berorientasi objek: Python dan C# adalah bahasa berorientasi objek. Semua konsep sekeliling kelas dalam Python berlaku dalam C#, meskipun sintaksnya berbeda.
- Lintas platform: Python dan C# adalah bahasa lintas platform. Aplikasi yang ditulis dalam salah satu bahasa dapat berjalan di banyak platform.
- Pengumpulan sampah: Kedua bahasa menggunakan manajemen memori otomatis melalui pengumpulan sampah. Runtime mengklaim kembali memori dari objek yang tidak direferensikan.
- Pengetikan kuat: Python dan C# adalah bahasa yang merupakan bahasa dengan pengetikan kuat. Pemaksaan jenis tidak terjadi secara implisit. Ada perbedaan yang dijelaskan nanti, karena C# ditik secara statis sedangkan Python ditik secara dinamis.
-
Async / Await: Fitur
async
danawait
pada Python secara langsung terinspirasi oleh dukungan C#'s untuk fiturasync
danawait
. -
Pencocokan pola: Ekspresi dan pencocokan pola Python
match
mirip dengan ekspresi pencocokan pola di C#switch
. Anda menggunakannya untuk memeriksa ekspresi data yang kompleks untuk menentukan apakah cocok dengan pola. -
Kata kunci pernyataan: Python dan C# berbagi banyak kata kunci, seperti
if
, ,else
while
,for
, dan banyak lainnya. Meskipun tidak semua sintaksis sama, ada cukup kesamaan yang dapat Anda baca C# jika Anda tahu Python.
Saat Anda mempelajari C#, Anda menemukan konsep penting ini di mana C# berbeda dari Python:
-
Indentasi vs. token: Dalam Python, baris baru dan indentasi adalah elemen sintaksis utama. Di C#, spasi kosong tidak signifikan. Token, seperti
;
, memisahkan pernyataan, dan token lainnya seperti{
dan}
mengendalikan cakupan blok untukif
dan pernyataan blok lainnya. Namun, untuk keterbacaan, sebagian besar gaya pengodean (termasuk gaya yang digunakan dalam dokumen ini) menggunakan indentasi untuk memperkuat cakupan blok yang dideklarasikan oleh{
dan}
. - Pengetikan statis: Dalam C#, deklarasi variabel menyertakan jenisnya. Menetapkan ulang variabel ke objek dari jenis yang berbeda menghasilkan kesalahan kompilator. Di Python, jenis dapat berubah saat ditetapkan ulang.
- Jenis Nullable: Variabel C# dapat nullable atau non-nullable. Tipe yang tidak bisa bernilai null adalah tipe yang tidak boleh null (atau kosong). Ini selalu mengacu pada objek yang valid. Sebaliknya, tipe nullable mungkin merujuk ke objek yang valid, atau null.
-
LINQ: Kata kunci ekspresi kueri yang membentuk Language Integrated Query (LINQ) bukan kata kunci di Python. Namun, pustaka Python seperti
itertools
,more-itertools
, danpy-linq
menyediakan fungsionalitas serupa. - Generik: Generik C# menggunakan pengetikan statis C# untuk membuat pernyataan tentang argumen yang disediakan untuk parameter jenis. Algoritma generik mungkin perlu menentukan batasan yang harus dipenuhi oleh jenis argumen.
Terakhir, ada beberapa fitur Python yang tidak tersedia di C#:
- Structural (duck) typing: Dalam C#, tipe memiliki nama dan deklarasi. Kecuali untuk tuple, jenis dengan struktur yang sama tidak dapat dipertukarkan.
- REPL: C# tidak memiliki Read-Eval-Print Loop (REPL) untuk solusi prototipe dengan cepat.
-
Whitespace signifikan: Anda perlu menggunakan kurung kurawal
{
dengan benar dan}
untuk menunjukkan cakupan blok.
Belajar C# jika Anda tahu Python adalah perjalanan yang mulus. Bahasa ini memiliki konsep yang sama dan idiom serupa untuk digunakan.