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






3.22/5 (27投票s)
在 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(动态语言运行时)的基础知识,所以让我们尝试使用一些代码片段和 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 日:首次发布