Fitur baru di C # 7

C # 7 menambahkan banyak fitur baru dengan fokus khusus pada kesederhanaan dalam pengkodean dan peningkatan kinerja. Ini memberikan banyak fokus pada konsumsi data, penyederhanaan kode, dan kinerja, dan itu dirancang untuk menghilangkan rasa sakit karena harus menulis kode tambahan dengan lebih dari satu cara.

Berikut sekilas tentang apa yang baru dan disempurnakan di C # 7.

  • Dukungan untuk fungsi Lokal
  • Dukungan yang ditingkatkan untuk Jenis Tuple
  • Jenis Rekaman
  • Pencocokan pola
  • Jenis referensi Non Nullable
  • Tipe yang tidak bisa diubah
  • Dukungan yang lebih baik untuk variabel keluar

Dukungan yang lebih baik untuk variabel keluar

Kemampuan untuk mendeklarasikan variabel keluar tepat pada titik penggunaan adalah fitur baru yang hebat di C # 7. Berikut adalah contoh potongan kode yang menggambarkan hal ini.

public void Save(Product p)

{

    p.SaveData(out int x);

    //Usual code

}

Tempat yang baik untuk menggunakan variabel adalah di dalam blok percobaan Anda. Cukup gunakan variabel Boolean out di mana tipe kembalian true menunjukkan bahwa operasi berhasil, salah jika sebaliknya.

Pencocokan pola

C # 7 memberikan dukungan yang sangat baik untuk pencocokan pola. Anda dapat menggunakan pencocokan pola pada semua tipe data, bahkan pada tipe data khusus juga. Selain itu, Anda dapat memanfaatkan pencocokan pola untuk mengekstrak nilai dari ekspresi. Berikut cuplikan kode yang menggambarkan pencocokan pola di tempat kerja!

object obj = "This is a demonstration of pattern matching in C# 7";

if (obj is string str)

{

    Console.WriteLine(str);

}

Dukungan untuk Fungsi Lokal

Anda mungkin sering membutuhkan fungsi pembantu yang hanya perlu digunakan sekali - mungkin hanya dengan satu metode. Anda sekarang dapat mendeklarasikan fungsi tersebut di dalam fungsi lain. Fungsi semacam itu dikenal sebagai fungsi lokal. Intinya, dukungan untuk fungsi lokal memungkinkan Anda mendeklarasikan metode di dalam cakupan blok. Terlepas dari kenyataan bahwa hal ini dimungkinkan menggunakan tipe Func dan Action dengan metode anonim di versi bahasa C # sebelumnya, ada beberapa tantangan. Mereka tidak mendukung parameter generik, params dan ref dan out.

Dukungan yang lebih baik untuk Tuple

Tuple adalah pengelompokan nilai sementara. Ini mirip dengan kelas POCO tetapi yang dibuat dengan cepat. Keuntungan utama menggunakan Tuple adalah memungkinkan metode untuk mengembalikan banyak nilai. Anda mungkin ingin menggunakan tupel untuk merepresentasikan sekumpulan data heterogen dan menyediakan cara mudah untuk mengakses data tersebut. Tuple bukanlah hal baru dan telah ada selama beberapa waktu sekarang. Anda memiliki dukungan untuk tupel dalam bahasa pemrograman F # dan Python. Anda dapat memanfaatkan tupel untuk menyimpan urutan terbatas dari data homogen atau heterogen dengan ukuran tetap yang terurut dan terbatas.

Anda sekarang memiliki dukungan untuk literal Tuple dan dekonstruksi Tuple juga. Dalam C # 7, tupel dianggap sebagai tipe nilai. Karenanya ini adalah tipe yang bisa berubah dan jauh lebih efisien sejauh menyangkut kinerja.

Jenis referensi yang tidak dapat dibatalkan

Jenis nilai nullable pertama kali diperkenalkan di C # 2.0. Jenis referensi non-nullable adalah kebalikan dari fitur ini. Pada dasarnya, jenis referensi yang tidak dapat dinihilkan digunakan untuk menunjukkan jenis referensi yang dijamin tidak null. Berikut cara tipe referensi yang tidak dapat dinolkan di C # 7:

string! str; //This is a non-nullable reference type

Dukungan yang lebih baik untuk objek Immutable

Objek yang tidak dapat diubah adalah salah satu keadaan yang tidak dapat diubah setelah dibuat. Ini membuat utas objek yang tidak dapat diubah menjadi aman. Misalkan Anda membuat kelas yang berisi properti yang memiliki pengambil tetapi tidak ada penyetel. Ya rupanya, tampaknya instance kelas tidak dapat diubah. Namun, di lain waktu, jika seseorang menambahkan setter untuk properti yang sama, kekekalan hilang, bukan?

Di sinilah tepatnya di mana dukungan yang lebih baik untuk tipe yang tidak dapat diubah datang untuk menyelamatkan. Dengan C # 7, Anda dapat membuat instance baru berdasarkan instance lain. Berikut cara melakukannya.

var firstObject = new Employee(101);

var secondObject = firstObject with {EmployeeId = 102};

Jenis rekaman

Tipe rekaman memungkinkan Anda membuat tipe hanya dengan menggunakan properti. Intinya, tipe record adalah tipe data yang terdiri dari properti saja. Potongan kode berikut mengilustrasikan bagaimana tipe record dapat dideklarasikan.

 class Rectangle(int Height, int Breadth);