Visual Basic 2005中的My功能之一(转)

摘要:概述了 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

[@more@]

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8781179/viewspace-925153/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/8781179/viewspace-925153/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值