C# 動的

WBOY
WBOYオリジナル
2024-09-03 15:32:36721ブラウズ

コンパイル時のチェックを避けるために、C# 4.0 のリリースでは動的型と呼ばれる新しい型が導入されました。基本的に、型はコンパイラによって式の値に基づいて割り当てられますが、この動的型はコンパイル時に型チェックを受けません。つまり、コンパイル時に型のチェックを回避し、その代わりに型は実行時に解決され、 Dynamic キーワードは動的型を定義するために使用され、動的型はコンパイラによってオブジェクト型にコンパイルされ、動的の実際の型は実行時に解決されます。

S構文:

dynamic variable_name;

C# での動的型の動作

  • 動的型は、C# 4.0 のリリースで導入されました。コンパイル時の型チェックは、動的型を使用することで回避できます。
  • 型は実行時にコンパイラによってチェックされます。
  • 動的型の動作は、オブジェクト型の動作と似ています。
  • GetType() メソッドを使用して、動的変数の実際の型を取得できます。
  • 動的型の型は、右側の値に応じて実行時に変更されます。
  • クラス オブジェクトが動的型、正しいメソッド、およびクラス オブジェクトを保持するプロパティの名前に割り当てられる場合、コンパイラはチェックしません。
  • 動的型パラメータをメソッドに渡すこともできるため、実行時にメソッドは任意の型のパラメータを受け入れることができます。
  • プロパティとメソッドに互換性がないことが判明した場合、実行時にコンパイラによって例外がスローされます。
  • コンパイラによる動的型の型チェックはコンパイル時に行われないため、コンパイラは動的型に対してエラーをスローしません。

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());
}
}

出力:

C# 動的

上記のプログラムでは、プログラムは定義されたクラスです。次に、main メソッドが呼び出されます。次に、実際の型が不明な動的変数が宣言されます。次に、GetType() メソッドを使用して、前に使用した動的変数の実際の型を取得します。プログラムの出力は、上のスナップショットに示されているとおりです。

以下に挙げる例を次に示します:

例 #1

メソッドに渡すことができる動的型パラメーターの使用法を示す 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");
}
}

出力:

C# 動的

上記のプログラムでは、プログラムは定義されたクラスです。次に、実際の型が不明な動的型変数がパラメーターとして渡される add というメソッドが定義されます。次に、main メソッドが呼び出されます。次に、メソッドは動的型変数を受け入れるため、メソッドにパラメータとして渡されたものを追加するために add メソッドが呼び出されます。プログラムの出力は上記のスナップショットに示されているとおりです。

例 #2

メソッドに渡すことができる動的型パラメーターの使用法を示す 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);
}
}
}

出力:

C# 動的

上記のプログラムでは、example という名前空間が定義されています。この場合、プログラムは定義されたクラスになります。次に、main メソッドが呼び出されます。次に、後で定義されるメソッド GetDet が呼び出され、動的型変数が実際の型が不明なパラメータとして渡されます。次に、動的型変数がパラメータとして渡される GetDet メソッドが定義され、任意の型のパラメータを受け入れます。プログラムの出力は、上のスナップショットに示されているとおりです。

動的型を使用することにはいくつかの利点があります。それらは次のとおりです:

  • C# で動的型を使用すると、他の動的言語との通信が簡単になります。
  • どのようなオブジェクトの型が予想されるかわからない場合、アプリケーション プログラミング インターフェイス呼び出しからの応答は C# で簡略化できます。
  • C# の動的型を使用して、複数の言語間で使用できるライブラリを作成できます。
  • 速度が主な懸念事項ではない場合は、C# の動的を使用して一般的なソリューションを作成できます。
  • リフレクション コードは、動的を使用して置き換えて簡素化できます。

結論

このチュートリアルでは、定義を通じて C# の動的型の概念、C# の動的型の構文、プログラミング例とその出力を通じて C# での動的型の仕組み、C# で動的型を使用する利点を理解します。

以上がC# 動的の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:C# の静的クラス次の記事:C# の静的クラス