コンパイル時のチェックを避けるために、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 中国語 Web サイトの他の関連記事を参照してください。