Cara menggunakan tipe anonim di C #

Tipe anonim adalah tipe yang tidak memiliki nama. Anda dapat menggunakan tipe anonim untuk merangkum sekumpulan properti hanya-baca di dalam satu unit - dan Anda tidak perlu mendefinisikan tipe anonim sebelumnya. Artikel ini membahas apa itu jenis anonim, mengapa penting, dan bagaimana kita bisa bekerja dengan jenis anonim di C #.

Untuk bekerja dengan contoh kode yang disediakan dalam artikel ini, Anda harus menginstal Visual Studio 2019 di sistem Anda. Jika Anda belum memiliki salinannya, Anda dapat mengunduh Visual Studio 2019 di sini. 

Buat proyek aplikasi konsol di Visual Studio

Pertama, mari buat proyek aplikasi konsol .NET Core di Visual Studio. Dengan asumsi Visual Studio 2019 diinstal di sistem Anda, ikuti langkah-langkah yang diuraikan di bawah ini untuk membuat proyek aplikasi konsol .NET Core baru di Visual Studio.

  1. Luncurkan Visual Studio IDE.
  2. Klik "Buat proyek baru".
  3. Di jendela "Buat proyek baru", pilih "Aplikasi Konsol (.NET Core)" dari daftar template yang ditampilkan.
  4. Klik Next.
  5. Di jendela "Configure your new project" yang ditampilkan berikutnya, tentukan nama dan lokasi untuk proyek baru tersebut.
  6. Klik Buat.

Ini akan membuat proyek aplikasi konsol .NET Core baru di Visual Studio 2019. Kami akan menggunakan proyek ini di bagian selanjutnya dari artikel ini untuk menggambarkan bagaimana kita dapat bekerja dengan tipe anonim di C #.

Pahami tipe anonim di C #

Pada dasarnya tipe anonim adalah tipe referensi dan dapat didefinisikan menggunakan kata kunci var. Anda dapat memiliki satu atau beberapa properti dalam tipe anonim tetapi semuanya hanya-baca. Berbeda dengan kelas C #, tipe anonim tidak dapat memiliki bidang atau metode - hanya dapat memiliki properti.

Anda dapat mengakses tipe anonim atau propertinya di dalam metode di mana tipe anonim telah ditentukan. Dengan kata lain, aksesibilitas tipe anonim terbatas pada cakupan yang telah ditentukan.

Gunakan tipe anonim di C #

Sekarang mari kita menggali beberapa kode. Pertimbangkan tipe anonim berikut.

var author = baru

{

  FirstName = "Joydip",

  LastName = "Kanjilal",

  Alamat = "Hyderabad, INDIA"

};

Dalam potongan kode sebelumnya, penulis adalah nama contoh dari tipe anonim yang dibuat menggunakan kata kunci baru. (Nama tipe anonim itu sendiri hanya diketahui oleh kompilernya.) Tipe anonim ini berisi tiga properti, yaitu NamaDepan, Nama Belakang, dan Alamat. Semua properti ini berjenis string. Perhatikan bahwa saat bekerja dengan tipe anonim, Anda tidak perlu menentukan tipe properti sebelum menginisialisasi.

Anda dapat menggunakan potongan kode berikut untuk mengakses ketiga properti dari tipe anonim di atas.

Console.WriteLine ("Nama: {0} {1}", author.FirstName, author.LastName);

Console.WriteLine ("Address: {0}", author.Address);

Gunakan tipe anonim bersarang di C #

Jenis anonim juga bisa disarangkan. Artinya, Anda dapat memiliki tipe anonim sebagai properti di dalam tipe anonim lainnya. Berikut adalah contoh yang menggambarkan hal ini.

var author = baru

{

  FirstName = "Joydip",

  LastName = "Kanjilal",

  Alamat = baru {Kota = "Hyderabad", Negara = "INDIA"}

};

Anda dapat mengakses properti jenis anonim bersarang ini seperti yang ditunjukkan dalam cuplikan kode yang diberikan di bawah ini.

Console.WriteLine ("Nama: {0} {1}", author.FirstName, author.LastName);

Console.WriteLine ("Address: {0}", author.Address.City);

Program lengkap diberikan di bawah ini untuk referensi Anda.

static void Main (string [] args)

{

  var author = baru

  {

     FirstName = "Joydip",

     LastName = "Kanjilal",

     Alamat = baru {Kota = "Hyderabad", Negara = "INDIA"}

  };

  Console.WriteLine ("Nama: {0} {1}", author.FirstName, author.LastName);

  Console.WriteLine ("Address: {0}", author.Address.City);

  Console.Read ();

}

Gunakan tipe anonim dengan LINQ 

Klausa Select di LINQ membuat dan mengembalikan tipe anonim sebagai hasilnya. Cuplikan kode berikut menggambarkan hal ini.

Pertimbangkan kelas berikut bernama Penulis.

kelas publik Penulis

{

  public int Id {get; set; }

  string publik FirstName {get; set; }

  string publik LastName {get; set; }

}

Cuplikan kode berikut menunjukkan bagaimana Anda dapat membuat daftar penulis.

Penulis IList =

Daftar baru()

{

  Penulis baru () {Id = 1, FirstName = "John", LastName = "Willey"},

  Penulis baru () {Id = 2, FirstName = "Steve", LastName = "Smith"},

  Penulis baru () {Id = 3, FirstName = "Bill", LastName = "Ruffner"},

  Penulis baru () {Id = 4, FirstName = "Joydip", LastName = "Kanjilal"}

};

Dan potongan kode berikutnya menunjukkan bagaimana Anda dapat memanfaatkan klausa Select di LINQ bersama dengan tipe anonim untuk mengembalikan hasil setelah eksekusi kueri.

var result = dari a di penulis pilih baru

{

   Id = a.Id,

   Nama = a.FirstName + "\ t" + a.LastName

};

Anda sekarang dapat menampilkan Id dan nama penulis di jendela konsol seperti yang ditunjukkan pada potongan kode di bawah ini.

foreach (data var dalam hasil)

      Console.WriteLine (data.Name);

Program lengkap diberikan di bawah ini untuk referensi Anda.

kelas publik Penulis

    {

        public int Id {get; set; }

        string publik FirstName {get; set; }

        string publik LastName {get; set; }

    }

    Program kelas

    {

        static void Main (string [] args)

        {

            Penulis IList = Daftar baru () {

                        Penulis baru () {Id = 1, FirstName = "John",

                                      LastName = "Willey"},

                        Penulis baru () {Id = 2, FirstName = "Steve",

                                      LastName = "Smith"},

                        Penulis baru () {Id = 3, FirstName = "Bill",

                                      LastName = "Ruffner"},

                        Penulis baru () {Id = 4, FirstName = "Joydip",

                                      LastName = "Kanjilal"}

                };

            var result = dari a di penulis

                         pilih baru

                         {

                             Id = a.Id,

                             Nama = a.FirstName + "\ t" + a.LastName

                         };

            foreach (data var dalam hasil)

                Console.WriteLine (data.Name);

            Console.Read ();

        }

    }

Tipe anonim memungkinkan Anda membuat tipe dan membuat instance dengan cepat tanpa harus mendeklarasikan tipe sebelumnya. Dari sudut pandang CLR, tipe anonim hanyalah tipe referensi lain. Kompiler memberikan nama untuk setiap tipe anonim di bawah sampulnya.

Jenis anonim berasal dari kelas Object. Inilah sebabnya mengapa Anda bisa mentransmisikan tipe anonim hanya ke instance tipe Objek. Perhatikan juga bahwa tipe kembalian dari sebuah metode, properti, acara, delegasi, dll. Tidak bisa menjadi tipe anonim.

Bagaimana melakukan lebih banyak di C #:

  • Kapan menggunakan kelas abstrak vs. antarmuka di C #
  • Bagaimana bekerja dengan AutoMapper di C #
  • Cara menggunakan ekspresi lambda di C #
  • Cara bekerja dengan delegasi Action, Func, dan Predicate di C #
  • Cara menggunakan Dapper ORM di C #
  • Bagaimana menerapkan logger sederhana di C #
  • Bagaimana bekerja dengan log4net di C #
  • Bagaimana bekerja dengan delegasi di C #
  • Bagaimana bekerja dengan atribut di C #
  • Cara menggunakan pola desain kelas terbang di C #
  • Bagaimana menerapkan pola desain repositori di C #
  • Menjelajahi metode virtual dan abstrak di C #
  • Bagaimana bekerja dengan refleksi di C #
  • Bagaimana bekerja dengan filesystemwatcher di C #