C # Tutorial: Dasar-dasar yang Anda Butuhkan untuk Menguasai C #



Artikel tentang Tutorial C # ini akan membantu Anda dengan pengetahuan mendetail tentang dasar-dasar C # bersama dengan contoh waktu nyata untuk pemahaman yang lebih baik.

C # adalah bahasa pemrograman serba guna dan kuat yang dikembangkan oleh Microsoft Corporation pada tahun 2000 sebagai pesaing mematikan bagi Java. Ini adalah bahasa pemrograman yang paling populer dan mendominasi baik untuk pengembangan web maupun pengembangan aplikasi desktop.

Dalam Tutorial C # ini, kita akan mempelajari konsep-konsep berikut.





Dasar-dasar C #

Pengantar Bahasa Pemrograman C #

Kembali ke awal 90-an, Java adalah bahasa pemrograman terkemuka untuk pengembangan web, pengembangan aplikasi desktop, dan banyak bidang lainnya. Microsoft ingin menghadirkan pesaing dengan banyak fitur canggih yang dapat meninggalkan Java jauh di belakang.



C#-Tutorial-hejlsberg_bio

Itu di tahun 2000, Anders Hejlsberg dan tim Microsoft-nya muncul dengan ide C # yang populer disebut C-Sharp. Inisiatif ini telah disetujui oleh Organisasi Standar Internasional (UTAMA) dan Asosiasi Produsen Komputer Eropa (ECMA). dan akhirnya, C # memasuki dunia pengembangan perangkat lunak.

Fitur Bahasa Pemrograman C #



  • Bahasa Pemrograman Berorientasi Objek

Pendekatan Pemrograman Berorientasi Objek inilah yang membuat C # sharp menjadi yang paling ramah programmer dan mudah untuk mengembangkan serta memelihara bahasa pemrograman.

  • Ketik-Bahasa Aman

Arti dari Type-Safe adalah compiler akan diberikan akses hanya ke lokasi memori yang memiliki izin untuk dieksekusi. Fitur ini meningkatkan keamanan kode ke tingkat eksponensial.

  • Interoperabilitas

Fitur Interoperabilitas membuat C # cukup mampu untuk melakukan segala sesuatu yang berasal dari C ++ dengan cara yang lebih efisien yang dapat mengungguli C ++ itu sendiri.

  • Perpustakaan Kaya

C # menyediakan akses ke beberapa pustaka bawaan yang menyediakan fungsionalitas terprogram untuk mengurangi waktu yang dihabiskan dalam proses pengembangan.

  • Skalabel dan Dapat Diperbarui

C # dirancang untuk menjadi yang terbaik di antara bahasa pemrograman lainnya. Oleh karena itu, itu selalu terbuka untuk pembaruan dan itu membuat dirinya sangat skalabel dengan fitur-fiturnya.

  • Berorientasi Komponen

Pengembang di Microsoft menggunakan pendekatan berbasis komponen untuk mengembangkan C #. Ini adalah metodologi pengembangan yang paling dominan untuk menjaga C # agar selalu dapat diskalakan dan diperbarui.

  • Bahasa Terstruktur

Pendekatan Pemrograman Terstruktur lebih disukai selama siklus hidup pengembangan perangkat lunak karena menjadi mudah untuk mengembangkan kompilasi dan menyebarkan perangkat lunak dibandingkan dengan pendekatan pemrograman berorientasi prosedur.

  • Cepat

Pemrograman C # terjadi lebih cepat dalam kompilasi dan eksekusi dibandingkan dengan C ++ dan bahasa pemrograman lainnya.

Instalasi

Itu terbukti Microsoft Visual Studio .NET adalah Editor terbaik di kelasnya untuk Pemrograman C #. Kami akan menginstal dan mengatur Microsoft Visual Studio untuk menjalankan Program C # kami dengan mengikuti langkah-langkah yang disebutkan di bawah ini:

Langkah 1 : Unduh Microsoft Visual Studio

Google untuk versi terbaru Visual Studio dan unduh Install file ke sistem lokal Anda dan kemudian Lari file penginstal sebagai sebuah administrator.

Langkah 2: Pilih Paket Pengembangan Desktop .NET

Setelah Anda menjalankan Installer, Visual Studio Editor akan berhasil diunduh ke sistem lokal Anda, Nanti kotak dialog akan ditampilkan di layar desktop Anda menanyakan musuh a paket tertentu yang Anda butuhkan di sistem Anda. Di sini, Anda perlu memilih file Pengembangan Desktop .NET paket.

Langkah 3: Setel C # Lingkungan

Setelah paket Anda untuk Pengembangan .NET diunduh, lalu kotak dialog lain akan ditampilkan di layar Anda menanyakan lingkungan pengembangan yang Anda cari. Di sini, Anda perlu pilih lingkungan untuk C #.

Langkah 4: Buat Proyek Pertama Anda

Setelah lingkungan ditetapkan, Anda semua siap untuk pergi. Mulai Visual Studio Anda dan pilih buat proyek baru opsi di kotak dialog yang ditampilkan.

Anda akan diarahkan ke kotak dialog berikutnya dan di sana Anda perlu memilih Perpustakaan kelas sebagai .NET Standard seperti gambar dibawah.

Di kotak dialog berikutnya, Anda akan diminta Konfigurasi proyek Anda . Konfigurasikan dan Anda sekarang berada di Editor. Tulis program pertama Anda dan Lari saya t. Output akan berhasil ditampilkan di Prompt Perintah.

menggunakan kelas Sistem Edureka {static void Main (string [] args) {Console.WriteLine ('Selamat Datang di Edureka !, Selamat Belajar ..!')}}

//Keluaran:

Mari kita jalankan Program C # pertama kita.

Struktur Program C #

Sekarang setelah kita menjalankan Program C # pertama kita, mari kita pahami strukturnya secara detail. Program C # sederhana memiliki bagian-bagian berikut.

menggunakan namespace Sistem ConsoleApplication1 {public class Edureka {public static void Main (string [] args) {Console.WriteLine ('Selamat Datang di Edureka !, Selamat Belajar ..!')}}}

//Keluaran:

Selamat datang di Edureka !, Selamat Belajar ..!

  • kelas: kelas secara umum dapat didefinisikan sebagai a kata kunci yang digunakan untuk mendefinisikan kelas dalam Program C #.
  • Edureka: Itu adalah nama dari Kelas. Kelas sering dianggap sebagai cetak biru yang menyimpan anggota dan metode yang terkait dengan kelas.
  • Utama: Pada dasarnya adalah metode utama dari seluruh Program C #, Ini bertindak sebagai pintu gerbang bagi kontrol untuk memasuki program. Itu dieksekusi sebelum metode lain dari program dijalankan.
  • kosong: Segmen kode ini ditujukan ke tipe pengembalian metode. Ini bisa berupa Datatype apa pun selain void. Void berarti metode tidak memiliki data yang dikembalikan darinya.
  • statis: Ini adalah sebuah kata kunci yang mengatakan bahwa anggota data yang dinyatakan statis dan memori khusus telah dialokasikan untuk anggota yang dideklarasikan.
  • String [] args: Ini mirip dengan argumen baris perintah yang kita gunakan dalam program kita. Saat kami menjalankan program kami, pada dasarnya kami melewatkan beberapa argumen, yang akan diterima oleh program karena pernyataan ini.
  • System.Console.WriteLine (“Selamat Datang di Edureka !, Selamat Belajar ..!”) Sini, Sistem adalah namespace. Konsoladalah kategori yang diuraikandi namespace Sistem. Itu WriteLine () Apakah itustatisteknikKonsolkategori yang digunakan untuk menuliskanteks di konsol.

Sekarang, mari kita pelajari Datatypes yang tersedia di C #.

Jenis data

Tipe data di C # dibagi menjadi tiga kategori yang dijelaskan di bawah ini.

Nilai Datatypes

Itu Nilai Datatypes berlokasi di System.ValueType Library dan selalu siap untuk diakses langsung dan variabel dapat langsung ditetapkan ke nilai tertentu. Value Datatypes selanjutnya diklasifikasikan menjadi dua jenis seperti yang ditunjukkan di bawah ini:

  • Jenis data yang telah ditentukan sebelumnya
  • Jenis data yang ditentukan pengguna

Jenis data yang telah ditentukan sebelumnya: Ini adalah yang biasanya kami gunakan dalam pemrograman sehari-hari. Jenis data ini ditentukan sebelumnya oleh pengembang bahasa dan tetap siap digunakan untuk pemrogram.

Contoh:

int, float, char, short double, dll

Jenis Data yang Ditentukan Pengguna: Ada situasi di mana kita mungkin perlu menyimpan nilai yang berbeda dari Datatypes ke dalam satu variabel. Dalam kasus ini, file Jenis data yang telah ditentukan sebelumnya tidak cukup. Ditetapkan pengguna Jenis data seperti jenis data yang dapat disesuaikan untuk pengguna.

Contoh: Struktur, Enum

Tipe data Rentang Memori yang Dialokasikan Ukuran memori
karakter bertanda tangan -128 hingga 127 1 Byte
unsigned char 0 hingga 127 1 Byte
arang -128 hingga 127 1 Byte
ditandatangani pendek -32.768 hingga 32.767 2 Byte
pendek unsigned 0 hingga 65.535 2 Byte
pendek -32.768 hingga 32.767 2 Byte
ditandatangani int -2,147,483,648 hingga -2,147,483,647 4 Byte
unsigned int 0 sampai 4.294.967.295 4 Byte
int -2,147,483,648 hingga -2,147,483,647 4 Byte
ditandatangani lama -9.223.372.036.854.775.808 hingga 9.223.372.036.854.775.807 8 Byte
unsigned long 0 sampai 18.446.744.073.709.551.615 8 Byte
panjang -9.223.372.036.854.775.808 hingga 9.223.372.036.854.775.807 8 Byte
mengapung 1,5 * 10-45 - 3,4 * 1038, (presisi 7 digit) 4 Byte
dua kali lipat 5.0 * 10-324 - 1.7 * 10308, (presisi 15 digit) 8 Byte
desimal -7,9 * 10-28 - 7,9 * 1028, (presisi 28 digit) 16 Byte


Jenis Data Pointer

Pointer Type adalah tipe data sederhana. Fungsinya sangat mirip dengan Pointer di C. Mereka dirancang untuk menyimpan alamat pointer lain.

float * ptr

Referensi Jenis Data

Namanya sudah cukup jelas. Itu Referensi Jenis Data sebenarnya tidak menyimpan variabel, melainkan menyimpan nilai referensi ke variabel tertentu. Dengan kata lain, mereka menyimpan alamat dari variabel sebenarnya.

Variabel Referensi diklasifikasikan menjadi tiga jenis seperti yang disebutkan di bawah ini:

  • Jenis objek

Object Datatype tersedia di file System.Object Kelas.Objeknyajenisdapatditugaskan kenilai darijenis lainnya,referensijenis, ditentukan sebelumnya, ditentukan penggunajenis. Tapi sebelumtugasnilai, itu membutuhkan Tipe konversi.

object abc abc = 50 // ini disebut tinju
  • Tipe Dinamis

Variabel Jenis Dinamis dirancang untuk menyimpan hampir semua jenis nilai. Ini disebut sebagai Jenis Dinamis karena pemeriksaan jenis nilai berlangsung dalam waktu proses

dinamis x = 10
  • Jenis String

Jenis String tersedia di System.String kelas. Jenis String dirancang untuk menyimpan literal string. String Literals disimpan dalam dua bentuk didua bentuk

    • dikutip
    • @detik.
String S = 'Edureka'
  • Itu @detik string literal terlihat seperti
@ 'Edureka'

Sekarang mari kita pahami variabelnya.

Variabel

Variabel adalah nama yang dialokasikan untuk lokasi memori yang menyimpan data tertentu yang diberikan oleh pengguna dan data tersebut mudah diakses dengan menggunakan nama variabel. Ada lima jenis variabel yang tersedia di C #

Tipe Contoh
Batal Data kosong
Boolean Benar dan salah
Bilangan bulat Int, Char, Byte, Short, Long
Mengapung Float dan Double
Desimal Desimal

Contoh:

int a, b double x float p char abc

Aturan yang harus diikuti untuk mendeklarasikan variabel di C #

  • Variabel dapat mencakup huruf, angka, dan garis bawah.
  • Nama variabel hanya dapat dimulai dengan alfabet atau garis bawah saja.
  • Variabel tidak dapat dimulai dengan digit atau karakter khusus.
  • Spasi putih tidak diperbolehkan di antara nama variabel.
  • Kata kunci yang telah dipesan dilarang digunakan sebagai nama variabel.

Operator

Seorang Operator dapat didefinisikan sebagai simbol khusus yang menjelaskan komputer untuk melakukan suatu Operasi Matematika tertentu adalah Operasi Logika atas sekumpulan variabel. C # mencakup berbagai Operator yang disebutkan di bawah ini.

  • Operator Aritmatika
  • Operator Relasional
  • Operator Logis
  • Operator Bitwise
  • Operator Penugasan

Operator Aritmatika

Operator Contoh Deskripsi
+ A + B Menambahkan dua Operand
- A - B Mengurangi dua Operand
* A * B Mengalikan dua Operand
/ A / B Membagi dua Operand
% A% B Sisa dari Dua Operan
++ A ++ Operasi Kenaikan
- UNTUK- Operasi Pengurangan

Operator Relasional

Operator Contoh Deskripsi
== A == B True, jika kedua operan sama, Else False
! = A! = B True, jika kedua operan tidak sama, Else False
> A> B Benar, jika A Lebih Besar, Lain Salah
< UNTUK Benar, jika B Lebih Besar, Lain Salah
> = A> = B Benar, jika A Lebih Besar atau sama, Lain Salah
<= UNTUK<= B True, id B is Greater equal, Else False

Operator Logis

Operator Contoh Deskripsi
&& A && B Benar, jika kedua operan benar, Lain Salah
|| A || B Benar, jika salah satu operan benar, Lain Salah
! SEBUAH ! B Membalik keadaan logis dari operan

Operator Bitwise

UNTUK B A & B A | B A ^ B
satu satu satu satu 0
satu 0 0 satu satu
0 satu 0 satu satu
0 0 0 0 0
Operator Contoh Deskripsi
~ (~ A) Operator Pelengkap Binary One adalah unary dan memiliki efek bit 'membalik'.
<< UNTUK<<2 Operator Binary Left Shift. Nilai operan kiri dipindahkan ke kiri dengan jumlah bit yang ditentukan oleh operan kanan.
>> A >> 2 Operator Pergeseran Kanan Biner. Nilai operan kiri dipindahkan ke kanan dengan jumlah bit yang ditentukan oleh operan kanan.

Operator Penugasan

Operator Contoh Deskripsi
= A = B + C A = B + C, B + C ditugaskan ke A
+ = A + = B A = A + B, A + B ditugaskan ke A
- = A - = B A = A-B, A-B ditugaskan ke A
* = A - = B A = A * B, A * B ditugaskan ke A
/ = A / = B A = A / B, A / B ditetapkan ke A
% = A% = B A = A% B, A% B ditugaskan ke A
<<= UNTUK<<= 2 Shift Kiri dan Operator Penugasan
>> = A >> = 2 Shift Kanan dan Operator Penugasan
& = A & = 2 Bitwise dan Operator Penugasan
^ = A ^ = 2 Eksklusif Bitwise dan Operator Penugasan
| = A! = 2 Bitwise Inclusive dan Assignment Operator

Loop

UNTUK lingkaran pernyataan digunakan untuk mengeksekusi blok pernyataan berulang kali sampai kondisi tertentu terpenuhi. Bahasa C # terdiri dari Pernyataan Loop berikut.

  • Untuk Loop
  • Sedangkan Loop
  • Do While Loop

Untuk Loop

Itu untuk loop digunakan untuk mengeksekusi segmen kode tertentu beberapa kali hingga kondisi yang diberikan terpenuhi.

Sintaksis

untuk (kenaikan / penurunan kondisi inisialisasi) {// code segment}

Flow chart:

Contoh:

menggunakan Sistem kelas publik ForExample {public static void Main (string [] args) {for (int i = 1 i<= 5 i++) { Console.WriteLine(i) } } } 

//Keluaran:

satu
2
3
4
5

Sedangkan Loop

Itu While loop digunakan untuk menjalankan segmen kode beberapa kali hingga kondisi tertentu terpenuhi.

Sintaksis

while (kondisi) {// kode untuk dieksekusi}

Flow chart:

Contoh:

menggunakan System namespace Loops {class Program {static void Main (string [] args) {int x = 5 while (x<= 10) { Console.WriteLine('The value of a: {0}', x) x++ } Console.ReadLine() } } } 

//Keluaran:

Nilai a: 5
Nilai a: 6
Nilai a: 7
Nilai a: 8
Nilai a: 9
Nilai a: 10

Do While Loop

Do while loop sangat mirip dengan While Loop tetapi satu-satunya perbedaan adalah bahwa kondisinya ditempatkan di akhir loop. Karenanya, loop dijalankan setidaknya sekali.

Sintaksis

lakukan {// kode untuk dieksekusi} sementara (kondisi)

Flow chart:

Contoh:

menggunakan ruang nama Sistem Edureka {class DoWhileLoop {public static void Main (string [] args) {int i = 1, n = 5, product do {product = n * i Console.WriteLine ('{0} * {1} = { 2} ', n, i, product) i ++} while (i<= 10) } } } 

//Keluaran:

5 * 1 = 5
5 * 2 = 10
5 * 3 = 15
5 * 4 = 20
5 * 5 = 25
5 * 6 = 30
5 * 7 = 35
5 * 8 = 40
5 * 9 = 45
5 * 10 = 50

Bersyarat

Pernyataan bersyarat digunakan untuk mengeksekusi pernyataan atau kelompok pernyataan berdasarkan beberapa kondisi. Jika kondisi itu benar Pernyataan C # dieksekusi jika tidak selanjutnya pernyataan akan dieksekusi.

Jenis Pernyataan Bersyarat dalam Bahasa C ++ adalah sebagai berikut:

  1. Jika pernyataan
  2. Pernyataan If-Else
  3. Pernyataan If-else bersarang
  4. If-Else If ladder
  5. Ganti pernyataan

Jika pernyataan

Tunggal jika pernyataan dalam bahasa C # digunakan untuk mengeksekusi kode jika kondisinya benar. Ini juga disebut pernyataan pemilihan satu arah.

Sintaksis

pergi ke fungsi dengan python
if (boolean-expression) {// pernyataan dijalankan jika ekspresi-boolean benar}

Flow chart:

Contoh:

menggunakan System namespace Conditional {class IfStatement {public static void Main (string [] args) {int number = 2 if (number<5) { Console.WriteLine('{0} is less than 5', number) } Console.WriteLine('This statement is always executed.') } } } 

//Keluaran:

2 kurang dari 5
Pernyataan ini selalu dieksekusi.

Pernyataan If-Else

Itu jika-lain pernyataan dalam bahasa C digunakan untuk mengeksekusi kode jika kondisinya benar atau salah. Ini juga disebut pernyataan pemilihan dua arah.

Sintaksis

if (ekspresi-boolean) {// pernyataan dijalankan jika ekspresi-boolean benar} else {// pernyataan dijalankan jika ekspresi-boolean salah}

Flow chart:

Contoh:

menggunakan System namespace Conditional {class IfElseStatement {public static void Main (string [] args) {int number = 12 if (number<5) { Console.WriteLine('{0} is less than 5', number) } else { Console.WriteLine('{0} is greater than or equal to 5', number) } Console.WriteLine('This statement is always executed.') } } } 

//Keluaran:

12 lebih besar dari atau sama dengan 5
Pernyataan ini selalu dieksekusi.

Pernyataan If-else bersarang

The bersarang jika-lain pernyataan digunakan ketika sebuah program membutuhkan lebih dari satu ekspresi tes. Ini juga disebut pernyataan pemilihan banyak arah. Ketika serangkaian keputusan terlibat dalam pernyataan, kami menggunakan jika-lain pernyataan dalam bentuk bersarang.

Sintaksis

if (boolean-expression) {if (nested-expression-1) {// kode untuk dieksekusi} else {// kode untuk dieksekusi}} else {if (nested-expression-2) {// kode untuk dieksekusi } lain {// kode untuk dieksekusi}}

Flow chart:

Contoh:

menggunakan Ruang nama Sistem Bersyarat {class Nested {public static void Main (string [] args) {int first = 7, second = -23, third = 13 if (first & gt second) {if (first

//Keluaran:

13 adalah yang terbesar

Else-if Ladder

Itu if-else-if pernyataan digunakan untuk mengeksekusi satu kode dari berbagai kondisi. Ini juga disebut pernyataan keputusan multipath. Ini adalah rangkaian pernyataan if..else di mana setiap pernyataan if dikaitkan dengan pernyataan else if dan pernyataan terakhir akan menjadi pernyataan lain.

Sintaksis

if (condition1) {// kode akan dieksekusi jika condition1 benar} else if (condition2) {// kode akan dijalankan jika condition2 benar} else if (condition3) {// kode akan dijalankan jika condition3 benar} ... else {// kode untuk dieksekusi jika semua kondisinya salah}

Flow chart:

Contoh:

menggunakan sistem kelas Edureka {public static void Main (String [] args) {int i = 20 if (i == 10) Console.WriteLine ('i is 10') else if (i == 15) Console.WriteLine (' saya adalah 15 ') else if (i == 20) Console.WriteLine (' i is 20 ') else Console.WriteLine (' i is not present ')}}

//Keluaran:

saya berusia 20 tahun

Ganti pernyataan

Beralih pernyataan bertindak sebagai pengganti tangga panjang if-else-if yang digunakan untuk menguji daftar kasus. Pernyataan switch berisi satu atau lebih label case yang diuji terhadap ekspresi switch. Ketika ekspresi cocok dengan kasus maka pernyataan terkait dengan kasus itu akan dieksekusi.

Sintaksis

switch (variabel / ekspresi) {case value1: // Pernyataan dieksekusi jika ekspresi (atau variabel) = nilai1 break case value2: // Pernyataan dieksekusi jika ekspresi (atau variabel) = value1 break ... ... ... .. . ... ... default: // Pernyataan dieksekusi jika tidak ada kasus yang cocok}

Flow chart:

Contoh:

menggunakan Sistem namespace Bersyarat {class SwitchCase {public static void Main (string [] args) {char ch Console.WriteLine ('Enter an alphabet') ch = Convert.ToChar (Console.ReadLine ()) switch (Char.ToLower (ch )) {case 'a': Console.WriteLine ('Vowel') break case 'e': Console.WriteLine ('Vowel') break case 'i': Console.WriteLine ('Vowel') break case 'o': Console.WriteLine ('Vowel') break case 'u': Console.WriteLine ('Vowel') break default: Console.WriteLine ('Not a vowel') break}}}}

//Keluaran:

Masukkan alfabet
aku s
Vokal

String

Tali Datatype adalah anggota dari System.String Kelas. Itu mampu menyimpan tipe data karakter. Kami dapat melakukan berbagai operasi di Stings sepertipenggabungan, perbandingan, mendapatkan substring, mencari, memangkas, mengganti, dan banyak lagi.

Analogi String dan string

Dalam C # Tali dan tali setara. Kata string adalah a kata kunci dan bertindak sebagai System.String kelas. Kita dapat menggunakan salah satu versi untuk mendeklarasikan string.

Sintaksis:

string s1 = 'Edureka' // membuat string menggunakan kata kunci string String s2 = 'Happy Learning' // membuat string menggunakan kelas String

Contoh:

menggunakan Sistem kelas publik StringExample {public static void Main (string [] args) {string s1 = 'Edureka' char [] ch = {'C', 's', 'h', 'a', 'r', ' p ',' ',' T ',' u ',' t ',' o ',' r ',' i ',' a ',' l '} string s2 = string baru (ch) Console.WriteLine ( s1) Console.WriteLine (s2)}}

//Keluaran:

Edureka
Tutorial Csharp

Metode String di C #

metode Deskripsi
Klon() Digunakan untuk mengembalikan referensi ke instance String ini.
Bandingkan (String, String) Digunakan untuk membandingkan dua objek String yang ditentukan.
Concat (String, String) Gabungkan dua contoh String yang ditentukan.
Berisi (String) Kembalikan nilai yang menunjukkan sub-string tertentu
Salin (String) Digunakan untuk membuat instance baru dari String dengan nilai yang sama
CopyTo (Int, Char [], Int, Int) Menyalin karakter dari posisi tertentu
Sama dengan (String, String) Menentukan bahwa dua objek String memiliki nilai yang sama.
Format (String, Objek) Ganti satu atau lebih item format dalam string tertentu
IndexOf (String) Melaporkan indeks berbasis nol dari kejadian pertama
Sisipkan (Int32, String) Mengembalikan string baru di mana string disisipkan pada indeks.
IsInterned (String) Menunjukkan bahwa string ini dalam bentuk normalisasi Unicode C.
IsNullOrEmpty (String) Menunjukkan bahwa string yang ditentukan adalah null atau string kosong.
IsNullOrWhiteSpace (String) Digunakan untuk menunjukkan apakah string yang ditentukan adalah null, kosong,
Gabung (String, String []) Digunakan untuk menggabungkan semua elemen array string
LastIndexOf (Char) Melaporkan posisi indeks berbasis nol dari karakter terakhir
LastIndexOfAny (Char []) Melaporkan posisi indeks berbasis nol dari karakter terakhir
Hapus (Int32) Mengembalikan string baru di mana semua karakter
Ganti (String, String) Mengembalikan string baru di mana semua kemunculan string
Pisahkan (Char []) Ini digunakan untuk membagi string menjadi beberapa substring
StartsWith (String) Ini digunakan untuk memeriksa apakah awal string ini
Substring (Int32) Ini digunakan untuk mengambil substring dari instance ini.
ToCharArray () Menyalin karakter dalam contoh ini ke larik Unicode.
ToString () Ini digunakan untuk mengembalikan instance String.
Memangkas() Potong senar


Array

Mirip dengan bahasa pemrograman lain, C # memang memiliki array. Array adalah struktur data sederhana yang dirancang untuk menyimpan elemen tipe data yang sama di lokasi memori yang berdekatan.

C # mendukung jenis Array berikut.

  • Array Dimensi Tunggal
  • Array Multidimensi
  • Array Bergerigi

Array Dimensi Tunggal

Single Dimensional Array menyimpan elemen dalam bentuk satu baris.

Sintaksis

int [] arr = new int [5] // membuat larik

Contoh:

menggunakan Sistem kelas publik ArrayExample {public static void Main (string [] args) {int [] arr = new int [5] arr [0] = 10 arr [1] = 20 arr [2] = 30 arr [3] = 40 arr [4] = 50 untuk (int i = 0 i 

//Keluaran:

10
dua puluh
30
40
lima puluh

Array Multidimensi

Array Multidimensi menyimpan elemen dalam bentuk beberapa dimensi seperti matriks dan kubus dll.

Sintaksis

int val = a [2,3]

Contoh:

menggunakan ruang nama Sistem ArrayApplication {class MyArray {static void Main (string [] args) {int [,] a = new int [5, 2] {{0, 0}, {1, 2}, {2, 4}, {3, 6}, {4, 8}} int i, j untuk (i = 0 i<5 i++) { for (j = 0 j < 2 j++) { Console.WriteLine('a[{0},{1}] = {2}', i, j, a[i, j]) } } Console.ReadKey() } } } 

//Keluaran:

a [0,0] = 0
a [0,1] = 0
a [1,0] = 1
a [1,1] = 2
a [2,0] = 2
a [2,1] = 4
a [3,0] = 3
a [3,1] = 6
a [4,0] = 4
a [4,1] = 8

Array Bergerigi

Jagged Array hanyalah sebuah array dari array.

Contoh:

menggunakan ruang nama Sistem ArrayApplication {class MyArray {static void Main (string [] args) {int [] [] a = new int [] [] {new int [] {0,0}, new int [] {1,2 }, int baru [] {2,4}, int baru [] {3, 6}, int baru [] {4, 8}} int i, j untuk (i = 0 i<5 i++) { for (j = 0 j < 2 j++) { Console.WriteLine('a[{0}][{1}] = {2}', i, j, a[i][j]) } } Console.ReadKey() } } } 

//Keluaran:

a [0] [0] = 0
a [0] [1] = 0
a [1] [0] = 1
a [1] [1] = 2
a [2] [0] = 2
a [2] [1] = 4
a [3] [0] = 3
a [3] [1] = 6
a [4] [0] = 4
a [4] [1] = 8

Koleksi

Koleksi dapat secara sederhana dianggap sebagai sekelompok objek yang dikumpulkan bersama untuk menerapkan beberapa fungsi pada data yang dikumpulkan. Operasi yang mungkin pernah dilakukan pada suatu koleksi adalah,

  • menyimpan objek
  • perbarui objek
  • hapus objek
  • mengambil objek
  • objek pencarian, dan
  • mengurutkan objek

Jenis Koleksi

Ada tiga kemungkinan berbeda untuk bekerja dengan koleksi. Ketiga ruang nama tersebut disebutkan di bawah ini:

  • System.Collections.Generic kelas
  • System.Collections kelas
  • System.Collections.Concurrent kelas

Kelas System.Collections.Generic memiliki jenis kelas berikut:

  • Daftar
  • Tumpukan
  • Antre
  • LinkedList
  • HashSet
  • SortedSet
  • Kamus
  • SortedDictionary
  • SortedList

Itu System.Collections kelas dianggap sebagai kelas warisan. mereka termasuk kelas-kelas berikut.

  • ArrayList
  • Tumpukan
  • Antre
  • Hashtable

Itu System.Collections.Concurrent kelasnamespace menyediakan kelas untuk operasi aman-thread. Sekarang banyak utas tidak akan membuat masalah untuk mengakses item koleksi. kelas yang tersedia di sini adalah,

  • BlockingCollection
  • ConcurrentBag
  • ConcurrentStack
  • ConcurrentQueue
  • ConcurrentDictionary
  • Partisi
  • Partisi
  • OrderablePartitioner

Daftar

Itu daftar dianggap sebagai struktur data yang tersedia di System.Collection.Generics namespace. Itu dapat menyimpan dan mengambil elemen. Daftar tersebut mampu menyimpan elemen duplikat.

Contoh:

menggunakan Sistem menggunakan System.Collections.Generic public class Edureka {public static void Main (string [] args) {var names = new List () names.Add ('Sandhya') names.Add ('Arun') names.Add ( 'Prashanth') names.Add ('Kiran') foreach (var name in names) {Console.WriteLine (name)}}}

//Keluaran:

Sandhya
Arun
Prashanth
Kiran

Set Hash

C # HashSetkategori sering digunakantoko,bawa pulangataumembaca komponen. Saya ttidakmenyimpan duplikatkomponen.itu didorongmenggunakan HashSet kategorijikakamu sudah memperolehmenyimpanhanya khusus komponen . nya ditemukan di namespace System.Collections.Generic.

Contoh:

menggunakan Sistem menggunakan System.Collections.Generic public class Edureka {public static void Main (string [] args) {var names = new HashSet () names.Add ('Sunil') names.Add ('Amar') names.Add ( 'Pujari') names. Tambahkan ('Imran') names.Add ('karan') foreach (var name in names) {Console.WriteLine (name)}}}

//Keluaran:

Sunil
Amar
Pujari
Imran
karan

Set yang Disortir

C # SortedSetkelas sering kali terbiasatoko, menghapus atau Baca elemen . Ini mempertahankan urutan naik dantidakmenyimpan duplikatelemen.itu cepatuntuk menggunakan SortedSetkategorijikakamu sudah memperolehmenyimpan khusus komponen dan pertahankan urutan menaik.nyaditemukan di namespace System.Collections.Generic.

Contoh:

menggunakan Sistem menggunakan System.Collections.Generic public class Edureka {public static void Main (string [] args) {var names = new SortedSet () names.Add ('Sanjay') names.Add ('Anuradha') names.Add ( 'Praveen') names. Tambahkan ('Ravi') names. Tambahkan ('Kajol') depan (nama var dalam nama) {Console.WriteLine (name)}}}

//Keluaran:

Anuradha
Kajol
Praveen
Ravi
Sanjay

Tumpukan

Itu tumpukan adalah kumpulan sederhana berikut ini TEPI atau prosedur keluar masuk terakhir saat memproses elemen yang disimpan di dalamnya.

Contoh:

menggunakan Sistem menggunakan System.Collections.Generic public class Edureka {public static void Main (string [] args) {Stack names = new Stack () names.Push ('Chandan') names.Push ('Pooja') names.Push ( 'James') names.Push ('Rajesh') names.Push ('kumar') foreach (string name in names) {Console.WriteLine (name)} Console.WriteLine ('Peek element:' + names.Peek () ) Console.WriteLine ('Pop:' + names.Pop ()) Console.WriteLine ('After Pop, Peek element:' + names.Peek ())}}

//Keluaran:

kumar
Rajesh
James
Pooja
Chandan
Elemen intip: kumar
Pop: kumar
Setelah Pop, elemen Peek: Rajesh

Antre

Antrean sangat mirip dengan Stack tetapi satu-satunya perbedaan adalah Antrean mengikuti FIFO atau prinsip masuk dan keluar pertama saat memproses elemen yang disimpan di dalamnya.

Contoh:

menggunakan Sistem menggunakan System.Collections.Generic public class Edureka {public static void Main (string [] args) {Queue names = new Queue () names.Enqueue ('Srujan') names.Enqueue ('Prajat') names.Enqueue ( 'John') names.Enqueue ('Raju') names.Enqueue ('Hari') foreach (string name in names) {Console.WriteLine (name)} Console.WriteLine ('Peek element:' + names.Peek () ) Console.WriteLine ('Dequeue:' + names.Dequeue ()) Console.WriteLine ('After Dequeue, Peek element:' + names.Peek ())}}

//Keluaran:

Srujan
Prajat
John
Sengit
Hari
Elemen intip: Srujan
Dequeue: Srujan
Setelah Dequeue, Peek element: Prajat

Daftar Tertaut

Daftar tertaut adalah kumpulan memori dinamis. Elemen dalam daftar Linked disimpan dengan mengakses memori dari heap dan menyimpan elemen secara berurutan dengan menghubungkan alamatnya.

Contoh:

menggunakan Sistem menggunakan System.Collections.Generic public class Edureka {public static void Main (string [] args) {var names = new LinkedList () names.AddLast ('Rajat') names.AddLast ('Arun') names.AddLast ( 'Prakash') names.AddLast ('jay') names.AddFirst ('sai') foreach (var name in names) {Console.WriteLine (name)}}}

//Keluaran:

sai
Batas
Arun
Prakash
jay

Kamus

Kamus kategorimenggunakanidedari hashtable. Ini menyimpan nilaipremisdari kuncinya. Itu mengandungkhususkuncihanya. Olehbantuankunci,kami akan dengan mudahcari ataumengambil elemen.nyaditemukan di namespace System.Collections.Generic.

Contoh:

menggunakan Sistem menggunakan System.Collections.Generic public class Edureka {public static void Main (string [] args) {Dictionary names = new Dictionary () names.Add ('1', 'Shiva') names.Add ('2', 'Prasad') names. Tambahkan ('3', 'Preetam') names. Tambahkan ('4', 'Roy'] names. Tambahkan ('5', 'Akash') foreach (KeyValuePair kv in names) {Console. WriteLine (kv.Key + '' + kv.Value)}}}

//Keluaran:

1 Siwa
2 Prasad
3 Preetam
4 Roy
5Akash

Kamus yang Diurutkan

Itu SortedDictionary kategorimenggunakanrancangandari hashtable. Ini menyimpan nilaiidedari kuncinya. Itu mengandungkhususkunci dan mempertahankan urutan naikidedari kuncinya. Olehbantuankunci,kami akan dengan mudahcari ataumengambil elemen.nyaditemukan di namespace System.Collections.Generic.

Contoh:

menggunakan Sistem menggunakan System.Collections.Generic public class Edureka {public static void Main (string [] args) {SortedDictionary names = new SortedDictionary () names.Add ('1', 'Arun') names.Add ('4', 'Vishal') names. Tambahkan ('5', 'Ramesh'] names. Tambahkan ('3', 'Vidya') names. Tambahkan ('2', 'Pallavi') foreach (KeyValuePair kv in names) {Console. WriteLine (kv.Key + '' + kv.Value)}}}

//Keluaran:

1 Siwa
2 Prasad
3 Preetam
4 Roy
5Akash

Daftar yang Diurutkan

Itu SortedList aku ssebuahsusunan pasangan kunci / nilai. Ini menyimpan nilaipremisdari kuncinya. The SortedListkategorimengandungkhususkunci dan mempertahankan urutan naikpremisdari kuncinya. Olehbantuankunci,kita bisa dengan sederhanacari atau hapuselemen.nyaditemukan di System.Collections.Generic namespace.

Contoh:

menggunakan Sistem menggunakan System.Collections.Generic public class Edureka {public static void Main (string [] args) {SortedDictionary names = new SortedDictionary () names.Add ('1', 'Arun') names.Add ('4', 'Vishal') names. Tambahkan ('5', 'Ramesh'] names. Tambahkan ('3', 'Vidya') names. Tambahkan ('2', 'Pallavi') foreach (KeyValuePair kv in names) {Console. WriteLine (kv.Key + '' + kv.Value)}}}

//Keluaran:

1 Arun
2 Pallavi
3 Vidya
4 Vishal
5Ramesh

Struktur

Struktur adalah tipe data yang ditentukan pengguna yang dirancang untuk menyimpan banyak elemen dari tipe data yang berbeda. Strukturnya dideklarasikan menggunakan kata kunci struct.

Contoh:

menggunakan System struct Books {public string title public string author public string subject public int book_id} kelas publik Edureka {public static void Main (string [] args) {Books Book1 Books Book2 Book1.title = 'C # Programming' Book1.author = ' Ramchandra Kumar 'Book1.subject =' Tutorial Pemrograman C ++ 'Book1.book_id = 95908978 Book2.title =' Telecom Billing 'Book2.author =' Karan 'Book2.subject =' Tutorial Telecom Billing 'Book2.book_id = 18674900 Console.WriteLine ( 'Judul buku 1: {0}', Book1.title) Console.WriteLine ('Penulis Buku 1: {0}', Book1.author) Console.WriteLine ('Subjek buku 1: {0}', Book1.subject) Console.WriteLine ('Buku 1 book_id: {0}', Book1.book_id) Console.WriteLine ('Judul buku 2: {0}', Book2.title) Console.WriteLine ('Penulis Buku 2: {0}', Book2.author) Console.WriteLine ('Subjek buku 2: {0}', Book2.subject) Console.WriteLine ('Book 2 book_id: {0}', Book2.book_id) Console.ReadKey ()}}

//Keluaran:

Buku 1 judul: Pemrograman C #
Buku 1 Penulis: Ramchandra Kumar
Buku 1 subjek: Tutorial Pemrograman C ++
Buku 1 book_id: 95908978
Buku 2 judul: Telecom Billing
Buku 2 Penulis: Karan
Buku 2 subjek: Telecom Billing Tutorial
Buku 2 book_id: 18674900

Fungsi

Fungsi tersebut didefinisikan sebagai blok kode dari kode utama. Fungsi ini digunakan untuk mengeksekusi pernyataan yang ditentukan dalam blok kode. Suatu fungsi terdiri dari komponen-komponen berikut.

  • Nama fungsi: Ini adalah nama khusus yang digunakan untuk membuat panggilan Fungsi.
  • Jenis pengembalian: Ini menentukan tipe data dari nilai pengembalian fungsi.
  • Tubuh: Ini berisi pernyataan yang dapat dieksekusi.
  • Penentu akses: Ini menentukan aksesibilitas fungsi dalam aplikasi.
  • Parameter: Ini adalah daftar argumen yang bisa kita berikan ke fungsi selama panggilan.

Sintaksis

FunctionName () {// function body // pernyataan return}

Contoh:

menggunakan ruang nama Sistem FunctionExample {class Edureka {public string Show (string message) {Console.WriteLine ('Inside Show Function') pesan kembali} static void Main (string [] args) {Edureka program = new Edureka () string message = program .Show ('To Edureka') Console.WriteLine ('Selamat Datang' + pesan)}}}

//Keluaran:

Di dalam Fungsi Pertunjukan
Selamat Datang di Edureka

Fungsi dapat dijalankan dengan 3 cara berbeda:

  • Panggilan dengan Nilai
  • Panggilan dengan Referensi
  • Parameter Keluar

Panggilan dengan Nilai

Di C #, nilai -Tipe parameteradalahlulus itureplikadari nilai asli keberfungsi sebagai gantireferensi. Saya ttidakmemodifikasinilai pertama. Sebuahamandemen dibuatdi lulusnilai tidakUsianilai tertentu.dalamcontoh berikut,kita punyalulusnilai di seluruhitupanggilan.

Contoh:

menggunakan ruang nama Sistem CallByValue {class Edureka {public void Show (int val) {val * = val Console.WriteLine ('Nilai di dalam fungsi acara' + val)} static void Main (string [] args) {int val = 50 Edureka program = new Edureka () Console.WriteLine ('Nilai sebelum memanggil fungsi' + val) program.Show (val) Console.WriteLine ('Nilai setelah memanggil fungsi' + val)}}}

//Keluaran:

Nilai sebelum memanggil fungsi 50
Nilai di dalam fungsi pertunjukan 2500
Nilai setelah memanggil fungsi 50

Panggilan dengan Referensi

Dalam metode Panggil dengan Referensi,untuk ref kata kunci untuk meneruskan argumen sebagai tipe referensi. Ini meneruskan referensi argumen ke fungsi daripada salinan nilai aslinya. Perubahan nilai yang diteruskan bersifat permanen dan memodifikasi nilai variabel asli.

Contoh:

menggunakan Sistem namespace CallByReference {class Edureka {public void Show (ref int val) {val * = val Console.WriteLine ('Nilai di dalam fungsi acara' + val)} static void Main (string [] args) {int val = 50 Edureka program = new Edureka () Console.WriteLine ('Nilai sebelum memanggil fungsi' + val) program.Show (ref val) Console.WriteLine ('Nilai setelah memanggil fungsi' + val)}}}

//Keluaran:

Nilai sebelum memanggil fungsi 50
Nilai di dalam fungsi pertunjukan 2500
Nilai setelah memanggil fungsi 2500

Parameter Keluar

Parameter Keluarmenyediakan di luar kata kunci untuk melewatkan argumen sebagai tipe-keluar. Ini seperti tipe referensi, kecuali bahwa variabel tidak memerlukan inisialisasi sebelum meneruskan. Kita harus menggunakan di luar kata kunci untuk meneruskan argumen sebagai tipe-out. Ini berguna ketika kita ingin suatu fungsi mengembalikan banyak nilai.

Contoh:

menggunakan Sistem namespace OutParameter {class Edureka {public void Show (out int val) {int square = 5 val = square val * = val} static void Main (string [] args) {int val = 50 Edureka program = new Edureka () Console.WriteLine ('Value before passing out variable' + val) program.Show (out val) Console.WriteLine ('Nilai setelah menerima variabel keluar' + val)}}}

//Keluaran:

Nilai sebelum membagikan variabel 50

Nilaisetelah menerima variabel keluar 25

Sekarang mari kita beralih ke pemrograman berorientasi objek

Pemrograman berorientasi objek

Pemrograman berorientasi objek Sistemadalah paradigma pemrograman berdasarkan konsep benda yang mengandung anggota data dan metode terkait dengan mereka. Tujuan utama dari pemrograman berorientasi objek adalah untuk meningkatkan fleksibilitas dan pemeliharaan program

Fitur pemrograman berorientasi objek:

  • Ini lebih menekankan pada data daripada prosedur.
  • Program dibagi menjadi beberapa objek sehingga memudahkan pengerjaannya.
  • Struktur data dirancang sedemikian rupa sehingga menjadi ciri objek.
  • Fungsi yang berhasil didata suatu objek ditempatkan bersama dalam struktur data.
  • Data disembunyikan dan tidak dapat diakses oleh fungsi eksternal tanpa izin.
  • Komunikasi antar objek dapat berlangsung dengan bantuan fungsi.
  • Menambahkan data dan fungsi baru menjadi mudah.
  • Mengikuti pendekatan bottom-up dalam desain program.

Paradigma Berorientasi Objek di C # adalah sebagai berikut

Pencacahan di C #

Enum atau disebut juga sebagai pencacahan di C # digunakan untuk menyimpan nilai konstan tanpa harus mengubahnya selama seluruh eksekusi Program C #. Saya tdigunakan untuk menyimpan sekumpulan konstanta bernama seperti musim, hari, bulan, ukuran, dll

Contoh:

menggunakan Sistem kelas publik EnumExample {minggu enum publik {Senin, Selasa, Rabu, Kamis, Jumat, Sabtu, Minggu} public static void Main () {int x = (int) week.Monday int y = (int) week.Jumat Konsol .WriteLine ('Monday = {0}', x) Console.WriteLine ('Friday = {0}', y)}}

//Keluaran:

Senin = 0
Jumat = 4

Pendekatan Pemrograman Berorientasi Objek

Gaya pemrograman Berorientasi Objek dapat dicapai dengan mengikuti metode yang ditentukan di bawah ini.

Enkapsulasi

Enkapsulasi adalah metode untuk menggabungkan metode bersama dengan mereka anggota data.

Contoh:

menggunakan Sistem namespace Edureka {persegi panjang kelas {publik ganda panjang publik lebar ganda publik ganda GetArea () {panjang kembali * lebar} tampilan kosong publik () {Console.WriteLine ('Panjang: {0}', panjang) Console.WriteLine (' Lebar: {0} ', lebar) Console.WriteLine (' Area: {0} ', GetArea ())}} kelas ExecuteRectangle {static void Main (string [] args) {Rectangle r = new Rectangle () r.length = 50 r.width = 35 r.Display () Konsol.ReadLine ()}}}

//Keluaran:

Panjang: 50
Lebar: 35
Area: 1750

Abstraksi

Abstraksi adalah metode untuk menyembunyikan bagian pengkodean yang kompleks dari pengguna dengan hanya memberinya informasi yang diperlukan.

Contoh:

menggunakan Sistem kelas abstrak publik Bentuk {public abstract void draw ()} kelas publik Persegi Panjang: Bentuk {public override void draw () {Console.WriteLine ('menggambar persegi panjang ...')}} kelas publik Lingkaran: Bentuk {public override void draw () {Console.WriteLine ('drawing circle ...')}} public class TestAbstract {public static void Main () {Shape ss = new Rectangle () s.draw () s = new Circle () s.draw ()}}

//Keluaran:

menggambar persegi panjang ...
menggambar lingkaran ...

Antarmuka

Itu antarmuka sangat mirip dengan Abstraksi. Fungsi Antarmuka adalah untuk menyembunyikan data yang tidak penting dari pengguna dan menyediakan satu-satunya data penting yang dia butuhkan.

Contoh:

menggunakan antarmuka publik Sistem Drawable {void draw ()} kelas publik Persegi Panjang: Drawable {public void draw () {Console.WriteLine ('menggambar persegi panjang ...')}} kelas publik Lingkaran: Drawable {public void draw () {Konsol .WriteLine ('menggambar lingkaran ...')}} TestInterface kelas publik {public static void Main () {Drawable dd = new Rectangle () d.draw () d = new Circle () d.draw ()}}

//Keluaran:

menggambar persegi panjang ...
menggambar lingkaran ...

Polimorfisme

Polimorfismeadalah kombinasi dari 'Poli' + 'Morphs' yang artinya banyak bentuk. Itu adalah kata yunani. Ini berarti segmen kode dapat mengambil berbagai bentuk. Kami memiliki dua jenis Polimorfisme.

  • Kompilasi Polimorfisme Waktu
  • Jalankan Polimorfisme Waktu

Contoh:

menggunakan Sistem kelas publik Hewan {string publik color = 'putih'} kelas publik Anjing: Hewan {string publik color = 'hitam'} kelas publik TestSealed {public static void Main () {Hewan d = Anjing baru () Console.WriteLine ( d.color)}}

//Keluaran:

putih

Warisan

Warisan adalah proses di mana satu objek memperoleh semua properti dan perilaku objek induknya secara otomatis. Anda dapat menggunakan kembali, memperluas atau mengubah atribut dan perilaku yang didefinisikan di kelas lain. kelas yang mewarisi anggota kelas lain dipanggil kelas turunan dan kelas yang anggotanya diwariskan disebut mendasarkan kelas. Kelas turunan adalah kelas khusus untuk kelas dasar.

Contoh Warisan Tingkat Tunggal

menggunakan Sistem namespace RectangleApplication {kelas persegi panjang {dilindungi panjang ganda dilindungi lebar ganda publik Persegi Panjang (ganda l, w ganda) {panjang = l lebar = w} publik ganda GetArea () {panjang kembali * lebar} tampilan kosong publik () {Konsol. WriteLine ('Length: {0}', length) Console.WriteLine ('Width: {0}', width) Console.WriteLine ('Area: {0}', GetArea ())}} class Tabletop: Rectangle {private Biaya ganda publik Meja (ganda l, ganda w): basis (l, w) {} ganda GetCost publik () {biaya ganda = GetArea () * 70 biaya pengembalian} Tampilan kosong publik () {base.Display () Konsol .WriteLine ('Cost: {0}', GetCost ())}} class ExecuteRectangle {static void Main (string [] args) {Tabletop t = new Tabletop (4.5, 7.5) t.Display () Console.ReadLine () }}}

//Keluaran:

Panjang: 4.5
Lebar: 7.5
Luas: 33.75
Biaya: 2362,5

Contoh Warisan Bertingkat

menggunakan Sistem namespace InheritanceApplication {class Shape {public void setWidth (int w) {width = w} public void setHeight (int h) {height = h} protected int width protected int height} antarmuka publik PaintCost {int getCost (int area)} class Rectangle: Shape, PaintCost {public int getArea () {return (width * height)} public int getCost (int area) {return area * 70}} class RectangleTester {static void Main (string [] args) {Rectangle Rect = baru Rectangle () int area Rect.setWidth (5) Rect.setHeight (7) area = Rect.getArea () Console.WriteLine ('Total area: {0}', Rect.getArea ()) Console.WriteLine ('Total biaya cat: $ {0} ', Rect.getCost (area)) Console.ReadKey ()}}}

//Keluaran:

Luas total: 35
Total biaya cat: $ 2450

Kelebihan beban

Overloading adalah situasi di mana kami memiliki dua atau anggota yang dinyatakan menggunakan nama yang sama. Overloading juga dimungkinkan ketika kami mendeklarasikan dua atau lebih metode dengan nama yang sama juga. Mari kita periksa contoh keduanya.

Anggota Berlebihan

Contoh:

menggunakan Sistem kelas publik Edureka {public static int add (int a, int b) {return a + b} public static int add (int a, int b, int c) {return a + b + c}} public class TestMemberOverloading { public static void Main () {Console.WriteLine (Edureka.add (12, 23)) Console.WriteLine (Edureka.add (12, 23, 25))}}

//Keluaran:

35
60

Metode Overloading

Contoh:

menggunakan Sistem kelas publik Edureka {public static int add (int a, int b) {return a + b} public static float add (float a, float b) {return a + b}} public class TestMemberOverloading {public static void Main ( ) {Console.WriteLine (Edureka.add (12, 23)) Console.WriteLine (Edureka.add (12.4f, 21.3f))}}

//Keluaran:

35
33.699997

Utama

Overriding adalah situasi di mana kelas anak mendefinisikan metode yang sama yang didefinisikan oleh induknya juga. Mari kita pahami ini melalui contoh kecil.

Contoh:

menggunakan Sistem kelas publik Edureka {public virtual void eat () {Console.WriteLine ('Eating')}} kelas publik Anjing: Edureka {public override void eat () {Console.WriteLine ('Eating food')}} public class Overriding {public static void Main () {Dog d = new Dog () d.eat ()}}

//Keluaran:

Memakan makanan

Namespace

Itu namespace pada dasarnya digunakan untuk menangani beberapa kelas yang ada dalam program. Namespace tersedia dengan berbagai cara.

  • System.Console: Di sini Sistem menjadi namespace
  • Untuk mengakses kelas namespace, kita perlu menggunakan namespacename.classname.
  • Kita bisa menggunakan menggunakan kata kunci juga.

Contoh:

menggunakan Sistem menggunakan Pertama menggunakan namespace Kedua Pertama {public class Edureka {public void sayWelcome () {Console.WriteLine ('Welcome To Edureka')}}} namespace Kedua {public class Happy_Learning {public void sayWishes () {Console.WriteLine (' Selamat Belajar ')}}} public class Namespace {public static void Main () {Edureka h1 = new Edureka () Happy_Learning w1 = new Happy_Learning () h1.sayWelcome () w1.sayWishes ()}}

//Keluaran:

Selamat Datang di Edureka
Selamat Belajar

Operasi File

Itu operasi file tersedia dalam C # adalah sebagai berikut:

Operasi Deskripsi
BinaryReader Membaca data primitif dari aliran biner.
BinaryWriter Menulis data primitif dalam format biner.
BufferedStream Penyimpanan sementara untuk aliran byte.
Direktori Membantu memanipulasi struktur direktori.
DirectoryInfo Digunakan untuk melakukan operasi pada direktori.
DriveInfo Memberikan informasi untuk drive.
Mengajukan Membantu dalam memanipulasi file.
FileInfo Digunakan untuk melakukan operasi pada file.
FileStream Digunakan untuk membaca dan menulis ke lokasi mana pun dalam file.
MemoryStream Digunakan untuk akses acak ke data yang dialirkan yang disimpan dalam memori.
Jalan Melakukan operasi pada informasi jalur.
StreamReader Digunakan untuk membaca karakter dari aliran byte.
StreamWriter Digunakan untuk menulis karakter ke aliran.
StringReader Digunakan untuk membaca dari buffer string.
Penulis String Digunakan untuk menulis menjadi buffer string.

FileMode

Itu FileMode adalah enumerator yang mendefinisikan beberapa metode pembukaan file. Anggota FileMode Enumerator dijelaskan sebagai berikut:

  • Menambahkan: Ini membuka file yang sudah ada dan meletakkan kursor di akhir file, atau membuat file jika file tidak ada.
  • Membuat: Ini dirancang untuk membuat file baru.
  • Membuat baru: Ini dirancang untuk menentukan sistem operasi, yang harus membuat file baru.
  • Buka: Ini dirancang untuk membuka file yang ada.
  • OpenOrCreate: Ini dirancang untuk menentukan sistem operasi yang harus membuka file jika ada, jika tidak maka harus membuat file baru.
  • Memotong: Truncate membuka file yang ada dan memotong ukurannya menjadi nol byte.

FileAccess

FileAccess Enumerator digunakan untuk mendapatkan akses ke file tertentu. Ini memiliki anggota berikut.

  • Baca baca
  • Menulis
  • Baca tulis

FileShare

Itu Fileshare Enumerator digunakan untuk berbagi file tertentu. Ini memiliki anggota berikut.

  • Warisan: Inheritable memungkinkan filehandle untuk meneruskan warisan ke proses anak.
  • Tidak ada: Tidak ada yang menolak berbagi file saat ini
  • Baca baca: Baca memungkinkan membuka file untuk membaca.
  • Baca tulis: ReadWrite memungkinkan membuka file untuk membaca dan menulis.
  • Menulis: Menulis memungkinkan membuka file untuk menulis.

Acara

Peristiwa umumnya dikenal sebagai tindakan yang dihasilkan oleh pengguna. Ini mungkin berupa klik mouse dan bahkan satu penekanan tombol dari keyboard. Demikian pula, program C # juga memiliki acara. Generator acara disebut penerbit dan penerima acara disebut pelanggan.

Penerbit

UNTUK penerbit berisi definisi acara dan delegasi. Itu acara-delegasi asosiasi didefinisikan dalam objek ini. SEBUAH penerbit objek kelas memanggil acara tersebut dan diberitahukan ke objek lain.

Pelanggan

UNTUK pelanggan menerima acara dan memberikan penanganan acara. Itu melimpahkan di kelas penerbit memanggil metode / acara penangan dari kelas pelanggan.

Contoh:

menggunakan Sistem namespace Edureka {string delegasi publik Del (string str) class EventBlock {event Del NewEvent public EventBlock () {this.NewEvent + = new Del (this.WelcomeUser)} string publik WelcomeUser (string username) {return 'Welcome To Edureka . '+ namapengguna} static void Main (string [] args) {EventBlock obj1 = EventBlock baru () string result = obj1.NewEvent (' Happy Learning ') Console.WriteLine (result)}}}

//Keluaran:

Selamat Datang di Edureka. Selamat Belajar

Generik

Generik adalah konsep menyediakan anggota dan metode kelas dengan placeholder di Waktu berjalan. Kita dapat mendefinisikan Generik menggunakan tanda kurung. Mari kita simak contoh berikut ini.

Generik di Kelas

menggunakan Sistem namespace Edureka {class GenericClass {public GenericClass (T msg) {Console.WriteLine (msg)}} kelas Program {static void Main (string [] args) {GenericClass gen = new GenericClass ('Pesan ini dari kelas generik' ) GenericClass genI = new GenericClass (123) GenericClass getCh = new GenericClass ('E')}}}

//Keluaran:

Pesan ini dari kelas generik
123
AKU S

Generik dalam Metode

menggunakan Sistem namespace Kelas Edureka {class GenericClass {public void Show (T msg) {Console.WriteLine (msg)}} kelas Program {static void Main (string [] args) {GenericClass genC = new GenericClass () genC.Show ('This pesan berasal dari metode umum ') genC.Show (321) genC.Show (' H ')}}}

//Keluaran:

Pesan ini berasal dari metode umum
321
H.

Delegasi

Itu Melimpahkan bertindak sebagai referensi untuk metode tersebut. Pada dasarnya ini sama dengan a penunjuk fungsi dalam C dan C ++ tetapi jauh lebih baik dan aman untuk tipe. Delegasi masuk metode statis merangkum metode saja. Sedangkan delegasi di contoh metode merangkum metode dan instance. Penggunaan terbaik dari delegasi adalah untuk digunakan sebagai file peristiwa.

Contoh:

menggunakan System delegate int Calculator (int n) public class Edureka {static int number = 25 public static int add (int n) {number = number + n return number} public static int mul (int n) {number = number * n return nomor} public static int getNumber () {return number} public static void Main (string [] args) {Calculator c1 = new Calculator (add) Calculator c2 = new Calculator (mul) c1 (20) Console.WriteLine ('Setelah kalkulator satu delegasi, Nomor baru adalah: '+ getNumber ()) c2 (3) Console.WriteLine (' Setelah kalkulator dua delegasi, Nomor baru adalah: '+ getNumber ())}}

//Keluaran:

Setelah kalkulator satu delegasi, Nomer barunya adalah: 45
Setelah kalkulator dua delegasi, Nomer barunya adalah: 135

Refleksi

Refleksi diperlukan untuk mendapatkan metadata pada saat run-time. Referensi tersedia di System.Reflection namespace. Ini membutuhkan kelas-kelas berikut untuk dieksekusi.

  • Tipe
  • MemberInfo
  • ConstructorInfo
  • MethodInfo
  • FieldInfo
  • PropertyInfo
  • TypeInfo
  • EventInfo
  • Modul
  • Majelis
  • AssemblyName
  • Pointer

Ketik kelas

Kelas tipe C # mewakili deklarasi tipe untuk tipe kelas, tipe antarmuka, tipe enumerasi, tipe array, tipe nilai

Ketik Properti

Daftar properti penting kelas Type disebutkan di bawah ini.

Properti Deskripsi
Majelis Mendapat Majelis untuk tipe ini.
AssemblyQualifiedName Mendapat nama yang memenuhi syarat Majelis untuk jenis ini.
Atribut Mendapat Atribut yang terkait dengan tipe.
BaseType Mendapat tipe dasar atau induk.
Nama lengkap Mendapatkan nama tipe yang sepenuhnya memenuhi syarat.
IsAbstract digunakan untuk memeriksa apakah tipenya Abstrak.
IsArray digunakan untuk memeriksa apakah tipenya Array.
IsClass digunakan untuk memeriksa apakah tipenya adalah Kelas.
IsEnum digunakan untuk memeriksa apakah tipenya adalah Enum.
IsInterface digunakan untuk memeriksa apakah tipenya adalah Interface.
IsNested digunakan untuk memeriksa apakah tipe tersebut Bersarang.
IsPrimitive digunakan untuk memeriksa apakah tipenya Primitive.
IsPointer digunakan untuk memeriksa apakah tipenya adalah Pointer.
IsNotPublic digunakan untuk memeriksa apakah jenisnya bukan Publik.
IsPublic digunakan untuk memeriksa apakah tipenya adalah Publik.
IsSealed digunakan untuk memeriksa apakah jenisnya Sealed.
IsSerializable digunakan untuk memeriksa apakah jenisnya dapat berseri.
MemberType digunakan untuk memeriksa apakah tipenya adalah tipe Anggota dari tipe Bersarang.
Modul Mendapat modul tipe.
Nama Mendapat nama tipe.
Namespace Mendapatkan namespace dari tipe tersebut.
Properti Deskripsi
GetConstructors () Mengembalikan semua konstruktor publik untuk Type.
GetConstructors (BindingFlags) Mengembalikan semua konstruktor untuk Type dengan BindingFlags yang ditentukan.
GetFields () Mengembalikan semua bidang publik untuk Jenis.
GetFields (BindingFlags) Menampilkan semua konstruktor publik untuk Type dengan BindingFlags yang ditentukan.
GetMembers () Menampilkan semua anggota publik untuk Jenis.
GetMembers (BindingFlags) Menampilkan semua anggota untuk Jenis dengan BindingFlags yang ditentukan.
GetMethods () Mengembalikan semua metode publik untuk Type.
GetMethods (BindingFlags) Mengembalikan semua metode untuk Type dengan BindingFlags yang ditentukan.
GetProperties () Mengembalikan semua properti publik untuk Type.
GetProperties (BindingFlags) Mengembalikan semua properti untuk Type dengan BindingFlags yang ditentukan.
GetType () Mendapat Jenis saat ini.
GetType (String) Mendapatkan Type untuk nama yang diberikan.

Contoh Refleksi:

Dapatkan Type

Contoh:

menggunakan sistem kelas publik GetType {public static void Main () {int a = 10 Type type = a.GetType () Console.WriteLine (type)}}

//Keluaran:

System.Int32

Dapatkan Majelis

Contoh:

menggunakan Sistem menggunakan System.Reflection public class GetAssembly {public static void Main () {Type t = typeof (System.String) Console.WriteLine (t.Assembly)}}

//Keluaran:

System.Private.CoreLib, Versi = 4.0.0.0, Budaya = netral, PublicKeyToken = 7cec85d7bea7798e

Informasi Jenis Cetak

Contoh:

menggunakan Sistem menggunakan System.Reflection public class PrintType {public static void Main () {Type t = typeof (System.String) Console.WriteLine (t.FullName) Console.WriteLine (t.BaseType) Console.WriteLine (t.IsClass) Console.WriteLine (t.IsEnum) Console.WriteLine (t.IsInterface)}}

//Keluaran:

Benar
Salah
Salah

Cetak Konstruktor

Contoh:

lompat di c ++
menggunakan Sistem menggunakan System.Reflection public class PrintConstructors {public static void Main () {Type t = typeof (System.String) Console.WriteLine ('Constructor of {0} type ...', t) ConstructorInfo [] ci = t .GetConstructors (BindingFlags.Public | BindingFlags.Instance) foreach (ConstructorInfo c in ci) {Console.WriteLine (c)}}}

//Keluaran:

Pembangun System.String type ...
Void .ctor (Char [])
Void .ctor (Char [], Int32, Int32)
Void .ctor (Char *)
Void .ctor (Char *, Int32, Int32)
Void .ctor (SByte *)
Void .ctor (SByte *, Int32, Int32)
Void .ctor (SByte *, Int32, Int32, System.Text.Encoding)
Void .ctor (Char, Int32)
Void .ctor (System.ReadOnlySpan`1 [System.Char])

Metode Cetak

Contoh:

menggunakan Sistem menggunakan System.Reflection public class PrintMethods {public static void Main () {Type t = typeof (System.String) Console.WriteLine ('Methods of {0} type ...', t) MethodInfo [] ci = t .GetMethods (BindingFlags.Public | BindingFlags.Instance) foreach (MethodInfo m in ci) {Console.WriteLine (m)}}}

//Keluaran:

Metode tipe System.String ...
System.String Replace (System.String, System.String)
System.String [] Pisahkan (Char, System.StringSplitOptions)
System.String [] Split (Char, Int32, System.StringSplitOptions)
System.String [] Pisahkan (Char [])
System.String [] Pisahkan (Char [], Int32)
System.String [] Pisahkan (Char [], System.StringSplitOptions)
System.String [] Pisahkan (Char [], Int32, System.StringSplitOptions)
System.String [] Split (System.String, System.StringSplitOptions)
System.String [] Split (System.String, Int32, System.StringSplitOptions)
System.String [] Split (System.String [], System.StringSplitOptions)
System.String [] Split (System.String [], Int32, System.StringSplitOptions) ......

Bidang Cetak

Contoh:

menggunakan Sistem menggunakan System.Reflection public class PrintFields {public static void Main () {Type t = typeof (System.String) Console.WriteLine ('Fields of {0} type ...', t) FieldInfo [] ci = t .GetFields (BindingFlags.Public | BindingFlags.Static | BindingFlags.NonPublic) foreach (FieldInfo f in ci) {Console.WriteLine (f)}}}

//Keluaran:

Fields of System. Jenis string ...
System.String Kosong

Sekarang, mari kita lanjutkan ke beberapa Konsep Pemrograman C # lanjutan

Konsep C # Lanjutan

Fungsi Anonim

Fungsi yang tidak memiliki nama tertentu dipanggil Anonim Fungsi. Ada dua jenis Fungsi Anonim yang tersedia di C #

  • Ekspresi Lambda
  • Metode Anonim

Contoh:

menggunakan ruang nama Sistem LambdaExpressions {class Edureka {delegate int Square (int num) static void Main (string [] args) {Square GetSquare = x => x * x int j = GetSquare (25) Console.WriteLine ('Square:' + j)}}}

//Keluaran:

Persegi: 625

Metode Anonim

Itu metode anonim menyediakan fungsionalitas yang sama dengan a ekspresi lambda, kecuali memungkinkan kita untuk mengabaikan daftar parameter.

Contoh:

menggunakan ruang nama Sistem AnonymousMethods {Program kelas {delegasi publik void AnonymousFun () static void Main (string [] args) {AnonymousFun fun = delegate () {Console.WriteLine ('This is anonymous function')} fun ()}}}

//Keluaran:

Ini adalah fungsi anonim

Multi-Threading

Multithreading adalah proses di mana beberapa utas dibuat dan ditetapkan untuk tugas yang berbeda. ini menghemat waktu dengan menjalankan banyak pekerjaan sekaligus. Kelas multithreading tersedia di System.Threading namespace.

System.Threading Namespace

Itu System.Threading namespace berisi kelas dan antarmuka untuk memfasilitasi multithreading. Ini menyediakan kelas untuk menyinkronkan sumber daya utas. Daftar kelas yang umum digunakan diberikan di bawah ini:

  • Benang
  • Mutex
  • Timer
  • Pantau
  • Tiang sinyal
  • ThreadLocal
  • ThreadPool
  • Lincah

Proses dan utas

Prosesnya sebenarnya dan aplikasi dan itu dianggap a kelas berat komponen. Di sisi lain, Utas adalah satu tunggal modul dari seluruh aplikasi. ini ringan dibandingkan dengan prosesnya

Siklus Hidup Thread

Setiap Thread memiliki Siklus Hidup. Siklus Hidup utas ditentukan di kelas System.Threading.Thread. Berikut adalah tahapan dalam Siklus Hidup utas apa pun.

  • Tidak dimulai
  • Dapat dijalankan (Siap dijalankan)
  • Lari
  • Tidak Dapat Dijalankan
  • Mati

Kelas Thread menyediakan properti dan metode berikut sebagai berikut.

Properti Benang

Properti Deskripsi
CurrentThread mengembalikan instance thread yang sedang berjalan.
Hidup memeriksa apakah utas saat ini hidup atau tidak.
IsBackground Untuk mendapatkan / menyetel nilai utas saat ini ada di latar belakang atau tidak.
ManagedThreadId digunakan untuk mendapatkan id unik untuk utas yang saat ini dikelola.
Nama digunakan untuk mendapatkan atau menyetel nama utas saat ini.
Prioritas digunakan untuk mendapatkan atau menyetel prioritas utas saat ini.
ThreadState digunakan untuk mengembalikan nilai yang mewakili status utas.

Metode Benang

metode Deskripsi
Abortus() digunakan untuk mengakhiri utas. Ini memunculkan ThreadAbortException.
Mengganggu() digunakan untuk menginterupsi utas yang berada dalam status WaitSleepJoin.
Ikuti() digunakan untuk memblokir semua utas panggilan hingga utas ini berakhir.
ResetAbort () digunakan untuk membatalkan permintaan Batalkan utas saat ini.
Lanjut() digunakan untuk melanjutkan utas yang ditangguhkan. Itu sudah usang.
Tidur (Int32) digunakan untuk menangguhkan utas saat ini selama milidetik yang ditentukan.
Mulailah() mengubah status utas saat ini menjadi Dapat dijalankan.
Menangguhkan() menangguhkan utas saat ini jika tidak ditangguhkan. Itu sudah usang.
Menghasilkan() digunakan untuk menghasilkan eksekusi thread saat ini ke thread lain.

Contoh Thread Utama

menggunakan Sistem menggunakan System.Threading kelas publik Edureka {public static void Main (string [] args) {Thread t = Thread.CurrentThread t.Name = 'MainThread' Console.WriteLine (t.Name)}}

//Keluaran:

MainThread

Penanganan Pengecualian

Itu pengecualian adalah kesalahan yang dilemparkan oleh program pada saat dijalankan. Kami melakukan Penanganan Pengecualian untuk membuat pengecualian program kami gratis.

Pengecualian Deskripsi
System.DivideByZeroException Kesalahan dihasilkan dengan membagi angka dengan nol.
System.NullReferenceException menangani kesalahan yang dihasilkan dengan mereferensikan objek null.
System.InvalidCastException menangani kesalahan yang dihasilkan oleh typecasting yang tidak valid.
System.IO.IOException menangani kesalahan Input / Output.
System.FieldAccessException Kesalahan yang dihasilkan oleh akses pribadi / dilindungi yang tidak valid.

Di C #, kami menggunakan 4 kata kunci untuk tampil penanganan pengecualian:

  • mencoba
  • menangkap
  • akhirnya, dan
  • melemparkan
Contoh:
menggunakan Sistem kelas publik EdurekExample {public static void Main (string [] args) {try {int a = 10 int b = 0 int x = a / b} catch (Exception e) {Console.WriteLine (e)} Console.WriteLine ('Pesan ini dari blok tangkapan')}}

//Keluaran:

System.DivideByZeroException: Mencoba membagi dengan nol.
di ExExaEdurekample.Main (String [] args) di F: C # TutorialC # ProgramsConsoleApp1ConsoleApp1Program.cs: baris 10
Pesan ini dari blok tangkap

Contoh Pengecualian yang Disesuaikan

menggunakan sistem kelas publik InvalidAgeException: Pengecualian {public InvalidAgeException (String pesan): basis (pesan) {}} kelas publik Disesuaikan {static void validate (int age) {if (age<18) { throw new InvalidAgeException('Sorry, Age is expected to be greater than 18') } } public static void Main(string[] args) { try { validate(12) } catch (InvalidAgeException e) { Console.WriteLine(e) } Console.WriteLine('Catch block is being executed now.') } } 

//Keluaran:

InvalidAgeException: Maaf, Usia diharapkan lebih dari 18
di Customized.validate (Int32 age) di F: C # TutorialC # ProgramsConsoleApp1ConsoleApp1Program.cs: baris 18
di Customized.Main (String [] args) di F: C # TutorialC # ProgramsConsoleApp1ConsoleApp1Program.cs: baris 23
Catch block sedang dieksekusi sekarang.

Terakhir blok contoh

menggunakan sistem public class FinalExecption {public static void Main (string [] args) {try {int a = 10 int b = 0 int x = a / b} catch (Exception e) {Console.WriteLine (e)} akhirnya {Console .WriteLine ('Akhirnya blok dieksekusi')} Console.WriteLine ('Catch block dieksekusi')}}

//Keluaran:

System.DivideByZeroException: Mencoba membagi dengan nol.
di FinalExecption.Main (String [] args) di F: C # TutorialC # ProgramsConsoleApp1ConsoleApp1Program.cs: baris 10
Akhirnya blok dijalankan
Catch block dijalankan

Tanda Tangan Pengecualian Sistem

[SerializableAttribute] [ComVisibleAttribute (true)] kelas publik SystemException: Exception

Konstruktor Pengecualian Sistem

Pembangun Deskripsi
SystemException () Ini digunakan untuk menginisialisasi instance baru dari kelas SystemException.
SystemException

(SerializationInfo, StreamingContext)

Ini digunakan untuk menginisialisasi instance baru dari kelas SystemException dengan data serial.
SystemException (String) Ini digunakan untuk menginisialisasi contoh baru dari kelas SystemException dengan pesan kesalahan yang ditentukan.
SystemException (String, Exception) Ini digunakan untuk menginisialisasi contoh baru dari kelas SystemException dengan pesan kesalahan tertentu dan referensi ke pengecualian batin yang menyebabkan pengecualian ini.

Properti Pengecualian Sistem

Properti Deskripsi
Data Ini digunakan untuk mendapatkan kumpulan pasangan kunci / nilai yang memberikan informasi tambahan yang ditentukan pengguna tentang pengecualian.
HelpLink Ini digunakan untuk mendapatkan atau menyetel tautan ke file bantuan yang terkait dengan pengecualian ini.
Hasil Ini digunakan untuk mendapatkan atau menyetel HRESULT, nilai numerik berkode yang ditetapkan ke pengecualian tertentu.
InnerException Ini digunakan untuk mendapatkan instance Exception yang menyebabkan pengecualian saat ini.
Pesan Ini digunakan untuk mendapatkan pesan yang menjelaskan pengecualian saat ini.
Sumber Ini digunakan untuk mendapatkan atau menyetel nama aplikasi yang menyebabkan kesalahan.
StackTrace Ini digunakan untuk mendapatkan representasi string dari frame langsung pada stack panggilan.
TargetSite Ini digunakan untuk mendapatkan metode yang menampilkan pengecualian saat ini.

Metode Pengecualian Sistem

Metode Deskripsi
Sama dengan (Objek) Ini digunakan untuk memeriksa apakah objek yang ditentukan sama dengan objek saat ini atau tidak.
Menyelesaikan() Ini digunakan untuk membebaskan sumber daya dan melakukan operasi pembersihan.
GetBaseException () Ini digunakan untuk mendapatkan pengecualian root.
GetHashCode () Ini digunakan untuk mendapatkan kode hash.
GetObjectData

(SerializationInfo, StreamingContext)

Ini digunakan untuk mendapatkan data objek.
GetType () Ini digunakan untuk mendapatkan jenis runtime dari instance saat ini.
MemberwiseClone () Ini digunakan untuk membuat salinan dangkal dari Objek saat ini.
ToString () Ini digunakan untuk membuat dan mengembalikan representasi string dari pengecualian saat ini.

Contoh Pengecualian Sistem

menggunakan ruang nama Sistem CSharpProgram {class SystemExceptionExample {static void Main (string [] args) {coba {int [] arr = new int [5] arr [10] = 25} catch (SystemException e) {Console.WriteLine (e)} }}}

//Keluaran:

System.IndexOutOfRangeException: Indeks berada di luar batas array.
di CSharpProgram.SystemExceptionExample.Main (String [] args) di F: C # TutorialC # ProgramsConsoleApp1ConsoleApp1Program.cs: baris 11

Sinkronisasi

Sinkronisasi mungkin merupakan teknik yang memungkinkan hanya 1 utas mengakses sumber daya untuk waktu tertentu. Tidak ada utas alternatif yang akan mengganggu hingga utas yang ditunjuk menyelesaikan tugasnya.

Dalam program multithreading, utas diizinkanuntuk mengakses sumber daya apa pun untukeksekusi tertentuwaktu. Untaian berbagi sumber daya dan dijalankan secara asinkron. Mengakses sumber daya bersama (data)mungkin tugas pentingitu umumnyabisa berhentisistem.kami memiliki kecenderungan untuk mempengaruhinyadengan membuat-utas secara sinkron.

Contoh Tanpa Sinkronisasi

menggunakan Sistem menggunakan kelas System.Threading Edureka {public void PrintTable () {untuk (int i = 1 i<= 10 i++) { Thread.Sleep(100) Console.WriteLine(i) } } } class Program { public static void Main(string[] args) { Edureka p = new Edureka() Thread t1 = new Thread(new ThreadStart(p.PrintTable)) Thread t2 = new Thread(new ThreadStart(p.PrintTable)) t1.Start() t2.Start() } } 

//Keluaran:

satu
satu
2
2
3
3
4
4
5
5
6
6
7
7
8
8
9
9
10
10

Contoh Dengan Sinkronisasi

menggunakan Sistem menggunakan kelas System.Threading Edureka {public void PrintTable () {kunci (ini) {untuk (int i = 1 i<= 10 i++) { Thread.Sleep(100) Console.WriteLine(i) } } } } class Program { public static void Main(string[] args) { Edureka p = new Edureka() Thread t1 = new Thread(new ThreadStart(p.PrintTable)) Thread t2 = new Thread(new ThreadStart(p.PrintTable)) t1.Start() t2.Start() } } 

//Keluaran:

satu
2
3
4
5
6
7
8
9
10
satu
2
3
4
5
6
7
8
9
10

Fitur baru

Microsoft telah menambahkan banyak fitur terbaru ke bahasa C # beberapa di antaranya disebutkan di bawah ini.

C # 6.0

  • Menggunakan direktif statis
  • Filter pengecualian
  • Menunggu di catch / akhirnya blok
  • Penginisialisasi properti otomatis
  • Nilai default untuk properti getter-only
  • Anggota bertubuh ekspresi
  • Penyebar nol
  • Interpolasi string
  • Nama operator
  • Penginisialisasi kamus
  • Kompiler-sebagai-layanan (Roslyn)

C # 7.0

  • Pencocokan pola
  • Tuple
  • Dekonstruksi
  • Fungsi lokal
  • Pemisah digit
  • Literal biner
  • Ref kembali dan penduduk setempat
  • Konstruktor dan finalisator bertubuh ekspresi
  • Ekspresi tubuh pengambil dan penyetel
  • Variabel keluar
  • Jenis pengembalian asinkron yang digeneralisasi

C # 7.1

  • Asinkron utama
  • Ekspresi default

Pertanyaan Wawancara berdasarkan C #

Pertanyaan wawancara penting berdasarkan Bahasa Pemrograman C # dapat ditemukan dalam pembaruan ini .

Dengan ini, kita sampai pada akhir artikel 'C # Tutorial' ini. Saya harap Anda memahami pentingnya Struktur Data, Sintaksis, fungsionalitas, dan operasi yang dilakukan dengan menggunakannya. Sekarang Anda telah memahami dasar-dasar Pemrograman di C # melalui iniC # Tutorial, lihat pelatihan disediakan oleh Edureka pada banyak teknologi seperti Java, Musim semi dan banyak lagiLebih dari itu, perusahaan pembelajaran online tepercaya dengan jaringan lebih dari 250.000 pelajar puas yang tersebar di seluruh dunia mendapat a pertanyaan untuk kami? Sebutkan di bagian komentar di blog 'C # Tutorial' ini dan kami akan menghubungi Anda kembali secepatnya.