Rumah  >  Artikel  >  pembangunan bahagian belakang  >  C# Dinamik

C# Dinamik

WBOY
WBOYasal
2024-09-03 15:32:36701semak imbas

Untuk mengelakkan pemeriksaan semasa masa penyusunan, jenis baharu telah diperkenalkan dengan keluaran C# 4.0 yang dipanggil jenis dinamik. Pada asasnya, jenis ditetapkan berdasarkan nilai ungkapan oleh pengkompil manakala jenis dinamik ini tidak menjalani pemeriksaan jenis semasa masa penyusunan, iaitu ia terlepas daripada pemeriksaan jenis semasa masa penyusunan sebaliknya jenis diselesaikan semasa masa berjalan dan kata kunci dinamik digunakan untuk menentukan jenis dinamik dan jenis dinamik disusun menjadi jenis objek oleh pengkompil dan jenis dinamik sebenar diselesaikan semasa masa jalan.

Syntax:

dynamic variable_name;

Menggunakan jenis Dinamik dalam C#

  • Jenis dinamik telah diperkenalkan dengan keluaran C# 4.0. Semakan jenis semasa masa penyusunan boleh dielakkan dengan menggunakan Jenis Dinamik.
  • Jenis disemak oleh pengkompil semasa masa jalan.
  • Tingkah laku jenis dinamik adalah seperti tingkah laku jenis objek.
  • Kaedah GetType() boleh digunakan untuk mendapatkan jenis sebenar pembolehubah dinamik.
  • Jenis jenis dinamik ditukar semasa masa jalan bergantung pada nilai di sebelah kanan.
  • Apabila objek kelas diperuntukkan kepada jenis dinamik, kaedah yang betul dan nama harta benda yang memegang objek kelas tidak disemak oleh pengkompil.
  • Parameter jenis dinamik juga boleh dihantar kepada kaedah supaya sebarang jenis parameter boleh diterima oleh kaedah semasa masa jalankan.
  • Pengecualian dilemparkan oleh pengkompil semasa masa jalankan jika sifat dan kaedah didapati tidak serasi.
  • Ralat tidak dilemparkan oleh pengkompil pada jenis dinamik semasa masa penyusunan kerana tiada pemeriksaan jenis untuk jenis dinamik oleh pengkompil semasa masa penyusunan.

Pertimbangkan contoh di bawah untuk menerangkan penggunaan jenis Dinamik dalam program C#:

using System;
//a class called program is defined
class program
{
//main method is called
static public void Main()
{
// Dynamic variables are declared
dynamic val1 = 1234;
dynamic val2 = 1234.40;
dynamic val3 = false;
dynamic val4 = "Hello";
//GetType() method is used to obtain the actual type of the dynamic variables used earlier
Console.WriteLine("The actual type of val1 is: {0}", val1.GetType().ToString());
Console.WriteLine("The actual type of val2 is: {0}",
val2.GetType().ToString());
Console.WriteLine("The actual type of val3 is: {0}",
val3.GetType().ToString());
Console.WriteLine("The actual type of val4 is: {0}",
val4.GetType().ToString());
}
}

Output:

C# Dinamik

Dalam atur cara di atas, atur cara ialah kelas yang ditakrifkan. Kemudian kaedah utama dipanggil. Kemudian pembolehubah dinamik diisytiharkan yang jenis sebenar tidak diketahui. Kemudian kaedah GetType() digunakan untuk mendapatkan jenis sebenar pembolehubah dinamik yang digunakan sebelum ini. Output program adalah seperti yang ditunjukkan dalam syot kilat di atas.

Contoh

Berikut ialah contoh berikut yang disebut di bawah:

Contoh #1

Program C# untuk menunjukkan penggunaan parameter jenis dinamik yang boleh dihantar kepada kaedah

Kod:

using System;
//a class called program is defined
class program
{
// a method called add is defined to which dynamic type variables are passed as parameters
public static void add(dynamic r1, dynamic r2)
{
Console.WriteLine(r1 + r2);
}
// Main method is called
static public void Main()
{
//add method is called to add whatever is passed as parameters to the method since the method accepts dynamic type variables
add("H", "I");
add("Welcome to", " dynamic type");
add(20, 20);
add(20.5, 1.5);
add(100, "fun");
}
}

Output:

C# Dinamik

Dalam atur cara di atas, atur cara ialah kelas yang ditakrifkan. Kemudian kaedah yang dipanggil tambah ditakrifkan kepada pembolehubah jenis dinamik yang diluluskan sebagai parameter yang jenis sebenar tidak diketahui. Kemudian kaedah utama dipanggil. Kemudian kaedah tambah dipanggil untuk menambah apa sahaja yang diluluskan sebagai parameter kepada kaedah kerana kaedah menerima pembolehubah jenis dinamik Output program adalah seperti yang ditunjukkan dalam petikan di atas.

Contoh #2

Program C# untuk menunjukkan penggunaan parameter jenis dinamik yang boleh dihantar kepada kaedah:

Kod:

using System;
//a namespace called example is defined
namespace example
{
//a class called program is defined
class Program
{
//main method is called
static void Main(string[] args)
{
//different types of values are passed as a parameter to GetDetails method
GetDet("Learning is fun and welcome to learning dynamic type in C#");
GetDet(false);
GetDet(100.22);
GetDet(20);
Console.ReadLine();
}
//a method called getdetails is defined to which dynamic type variable is passed as a parameter so it accepts any type of parameter
static void GetDet(dynamic r)
{
Console.WriteLine(r);
}
}
}

Output:

C# Dinamik

Dalam program di atas, ruang nama yang dipanggil contoh ditakrifkan. Kemudian program adalah kelas yang ditakrifkan. Kemudian kaedah utama dipanggil. Kemudian kaedah GetDet dipanggil yang ditakrifkan kemudian, yang mana pembolehubah jenis dinamik dihantar sebagai parameter yang jenis sebenar tidak diketahui. Kemudian kaedah GetDet ditakrifkan kepada pembolehubah jenis dinamik yang diluluskan sebagai parameter supaya ia menerima sebarang jenis parameter. Output program adalah seperti yang ditunjukkan dalam syot kilat di atas.

Terdapat beberapa kelebihan menggunakan jenis dinamik. Mereka ialah:

  • Komunikasi dengan bahasa dinamik lain menjadi lebih mudah dengan menggunakan jenis dinamik dalam C#.
  • Respons daripada panggilan Antara Muka Pengaturcaraan Aplikasi boleh dipermudahkan dalam C# apabila kita tidak mengetahui jenis objek yang diharapkan.
  • Perpustakaan boleh dibuat yang boleh digunakan antara beberapa bahasa menggunakan jenis dinamik dalam C#.
  • Jika kebimbangan utama bukan kelajuan, penyelesaian generik boleh dibuat menggunakan dinamik dalam C#.
  • Kod pantulan boleh diganti dan dibuat lebih mudah menggunakan dinamik.

Kesimpulan

Dalam tutorial ini, kami memahami konsep jenis Dinamik dalam C# melalui definisi, sintaks jenis Dinamik dalam C#, kerja jenis Dinamik dalam C# melalui contoh pengaturcaraan dan outputnya, dan kelebihan menggunakan jenis dinamik dalam C#.

Atas ialah kandungan terperinci C# Dinamik. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:Kelas Statik dalam C#Artikel seterusnya:Kelas Statik dalam C#