65.9K
CodeProject 正在变化。 阅读更多。
Home

简介 - DLR(动态语言运行时)

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.22/5 (27投票s)

2010年10月4日

CPOL

2分钟阅读

viewsIcon

74010

downloadIcon

301

在 Microsoft Visual Studio .NET (Framework 4.0) 中使用动态类型

引言

CLR(公共语言运行时)现在已不是什么新鲜事物,.NET 开发人员都熟悉 CLR,以及如何使用对象。毫无疑问,现在我们可以使用 CLR 轻松设计我们的组件和应用程序。

我们不会讨论 CLR。我们将尝试专注于 DLR(动态语言运行时)。首先,我们需要知道什么是 DLR。简单来说,我们可以说 DLR 具有一些添加到 Microsoft .NET Framework 4.0 的公共语言运行时 (CLR) 中的新功能。

有关 CLR 的更多信息可以在这里找到。

动态类型的作用

让我们尝试了解更多。 Microsoft .NET Framework 4.0 的强大功能之一是动态类型。

动态类型允许我们以某种方式编写代码,我们可以绕过编译时检查。请注意,绕过并不意味着我们可以消除编译时错误,而是意味着如果操作无效,则我们无法在编译时检测到错误。此错误仅在运行时出现。

如何使用动态类型

Microsoft .NET Framework 4.0 为我们提供了 System.Dynamic 命名空间。要使用动态类型,我们需要添加 System.Dynamic 的引用 DLL。

图:显示当前对象输出的动态类型。

DLR.jpg

好了,我希望您了解了 DLR(动态语言运行时)的基础知识,所以让我们尝试使用一些代码片段和 Microsoft Visual Studio .NET 的一些关键字。我们熟悉关键字“var”,我们将使用这个关键字,在此之前,我必须分享一件有趣的事情:是否可以在运行时更改对象类型? 你的答案可能是否定的。 但是用 dynamic 关键字定义的对象可以在运行时更改它们的类型。 这不是很酷吗。 下面给出一个简单的代码示例

有关 System.Dynamic 的更多信息可以在这里找到。

Using the Code

在下面的这个例子中,我们有一个名为 Class1() 的类。 Class1() 有两个函数 displayMessage()displayNumeric()。 两个函数都返回不同的值。

static void Main(string[] args)
{
     dynamic myDynamicVariable;
     // "dynamic" is keyword for declaring dynamic type variables 
     var _objClass = new Class1();
     // Creating object 

     myDynamicVariable = _objClass.displayMessage();
     Console.WriteLine("Value: " + myDynamicVariable + ". 
	Type of dynamic variable is: " + myDynamicVariable.GetType());
     // Displaying types
     myDynamicVariable = _objClass.displayNumeric();
     Console.WriteLine("\nValue: My CP Member Id # " + myDynamicVariable + 
	". Type of dynamic variable is: " + myDynamicVariable.GetType());
     // Displaying types
            
      Console.ReadLine();
}
        class Class1
        {
            private string sMessage = "The Code Project is COOL";
            public string displayMessage()
            {
                return sMessage;
            }
            public int displayNumeric()
            {
                return 1186309;
            }
        } 

如果你看,我们声明了一个动态变量 myDynamicVariable

dynamic myDynamicVariable;
// "dynamic" is keyword for declaring dynamic type variables 

所以我们将 string 值分配给它并在控制台中打印它,值以及它的类型。 这就是动态类型的全部内容。

结论

希望这对您有所帮助。祝您使用愉快!

历史

  • 2010 年 10 月 4 日:首次发布
© . All rights reserved.