為了避免在編譯時進行檢查,C# 4.0 版本中引入了一種稱為動態類型的新類型。基本上,類型是由編譯器根據表達式值分配的,而該動態類型在編譯時不會進行類型檢查,也就是說,它在編譯時逃避類型檢查,而是在運行時解析類型,並且在運行時解析類型。 dynamic 關鍵字用於定義動態類型,動態類型由編譯器編譯為物件類型,動態的實際類型在執行時解析。
S文法:
dynamic variable_name;
考慮下面的範例來解釋動態類型在 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()); } }
輸出:
上面的程式中,程式就是定義的類別。然後呼叫main方法。然後聲明實際類型未知的動態變數。然後使用GetType()方法取得前面使用的動態變數的實際類型。程式的輸出如上面的快照所示。
以下是下面提到的範例:
C# 程式示範如何使用可傳遞給方法的動態型別參數
代碼:
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"); } }
輸出:
上面的程式中,程式就是定義的類別。然後定義一個名為 add 的方法,將動態類型變數作為實際類型未知的參數傳遞給該方法。然後呼叫main方法。然後呼叫 add 方法來新增作為參數傳遞給該方法的任何內容,因為該方法接受動態類型變數。程式的輸出如上面的快照所示。
C# 程式示範如何使用可傳遞給方法的動態型別參數:
代碼:
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); } } }
輸出:
在上面的程式中,定義了一個名為 example 的命名空間。那麼程式就是定義的類別。然後呼叫main方法。然後呼叫稍後定義的 GetDet 方法,將動態類型變數作為實際類型未知的參數傳遞給該方法。然後定義 GetDet 方法,將動態類型變數作為參數傳遞給該方法,以便它接受任何類型的參數。程式的輸出如上面的快照所示。
使用動態型別有幾個優點。他們是:
在本教程中,我們透過定義來了解C# 中動態類型的概念、C# 中動態類型的語法、透過程式設計範例及其輸出來了解C# 中動態類型的工作原理,以及在C# 中使用動態類型的優點。
以上是C# 動態的詳細內容。更多資訊請關注PHP中文網其他相關文章!