为了避免在编译时进行检查,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中文网其他相关文章!