| 摘要:概述了 My 功能如何公开 .NET Framework 功能,包括可用的类、动态生成的类以及线程处理。
注:本文和示例代码均基于 Microsoft Visual Studio 2005(此前代号为“Whidbey”)的预发布版。文中包含的所有信息均有可能变更。示例项目需要 Visual Studio 2005 Beta1 或更高版本。 逆@风@者
简介
My 是 Visual Basic 2005 中的一项新功能,它可将常用功能放在您触手可及的地方,并减少了您必须编写的代码行数。它以有效、可靠且线程安全的方式实现这一目的。在程序员工作效率显得尤为重要的环境中,My 可以帮助您更快地完成工作,这就是 Visual Basic 的精髓所在。
本文旨在探究如何使用 My 来访问 .NET Framework 功能以及您项目中的项。
可从 My 中获得的 .NET Framework 类
由于 .NET Framework 涉及的内容很多,因此要找到您所需的功能非常困难。为了解决此问题,My 提供了常用 .NET Framework 类和功能的入口点。My 还公开了新的高级别 .NET Framework 类,这些类可将相关的功能汇集到基于任务的 API 中。
My 公开功能的方式包括:返回已实例化并可以使用的 .NET Framework 类,延推迟对 .NET Framework 方法的调用,以及返回动态生成的类(使用该类可访问您项目中的项)。
直接公开
只要可能,My 便会作为一种发现机制为 .NET Framework 中的现有类提供服务,并直接公开这些类型。请参见以下 My.Application.Deployment 示例:
Public ReadOnly Property Deployment() As _ System.Deployment.ApplicationDeployment Get Return _ System.Deployment.ApplicationDeployment.CurrentDeployment End Get End Property
直接公开的其他示例包括 My.Computer.FileSystem.OpenTextFileReader()(它返回 System.IO.StreamReader)、My.Application.OpenForms()(它返回 System.Windows.Forms.FormsCollection)、My.User(它返回 System.Security.Principal.IPrincipal),等等。
外观
My 还可以返回能够提供基于任务的 API 的新类,以用于执行先前难以执行的操作,因为在以前找到功能很困难,并且/或者需要多个对象协同完成。
需要使用低级别 .NET Framework API 或者需要多行代码的常见任务得以大大简化。请参见以下确定网络连接是否可用的任务示例:
Imports System.Net.NetworkInformation Public ReadOnly Property IsAvailable() As Boolean Get For Each NetInterface As NetworkInterface In _ NetworkInterface.GetAllNetworkInterfaces() If NetInterface.Type <> InterfaceType.Loopback _ AndAlso NetInterface.Type <> InterfaceType.Tunnel _ AndAlso NetInterface.OperationalStatus = _ OperationalStatus.Up Then Return True End If Next Return False End Get End Property
上面的代码需要 System.Net.NetworkInformation 命名空间中几个类型的详细知识。使用外观模式,My.Computer.Network 可将这些类型及其关系简化为一行代码:My.Computer.Network.IsAvailable()。
外观还可以将用其他方式难以找到的相关功能简单地汇集在一起。例如,My.Computer 可将不同类的属性汇集起来,以提供计算机名以及对屏幕的访问:
Public ReadOnly Property Name() As String Get Return System.Environment.MachineName End Get End Property Public ReadOnly Property Screen() As System.Windows.Forms.Screen Get Return System.Windows.Forms.Screen.PrimaryScreen End Get End Property
在 My 中,可从多个 .NET Framework 类型中汇集相关功能的类的其他示例包括 My.Application、My.Computer、My.Computer.FileSystem、My.Computer.Info 以及 My.Application.Info。
Proxy 类
proxy 类是一个非常“瘦”的类,可将对它的所有调用转发到基础对象中。例如,如果您调用 My.Computer.Clipboard.GetText(),则实际上是在调用 proxy 类方法 ClipboardProxy.GetText(),定义如下:
本文章更多内容:1 - 2 - 3 - 下一页>> |