首页 理论教育 C#编程新手手册:动态编程应用

C#编程新手手册:动态编程应用

时间:2023-10-22 理论教育 版权反馈
【摘要】:在下面的内容中,以一个具体实例来演示C# 4.0中的动态编程是如何简化对Silverlight应用程序中HTML DOM对象的访问的。代码如下:为了体会动态编程所带来的便利,接下来看看在没有动态类型的C# 3.0中,AddPin()函数应该如何实现。很明显,C# 3.0中的实现过程非常繁琐,而C# 4.0中的实现是如此的简单、自然:接下来需要在适当的位置调用这两个函数,以实现地图的加载和Pin的添加。图12-7 添加Virtual Earth后的页面

C#编程新手手册:动态编程应用

在下面的内容中,以一个具体实例来演示C# 4.0中的动态编程是如何简化对Silverlight应用程序中HTML DOM对象的访问的。

(1)安装Silverlight 2 runtime和SDK

为了运行这个实例,需要安装Silverlight 2 runtime和SDK。这些都可以从微软的网站上直接下载:

978-7-111-36370-5-Part03-40.jpgSilverlight 2 RTW runtime。

978-7-111-36370-5-Part03-41.jpgSilverlight 2 RTW SDK。

另外,因为Visual Studio 2010跟Silverlight的一些已知的兼容性问题,还需要一个拥有管理员权限的账号来运行Visual Studio 2010 CTP。

(2)下载实例项目SilverlightSolution

为了演示C#4.0的诸多新特性,微软通过MSDN Code Gallery发布了一个演示C#新特性的实例程序包,所用到的实例项目SilverlightSolution就在这个程序包中。可以访问:

http://code.msdn.microsoft.com/csharpfuture

下载此实例程序包后,将需要的项目SilverlightSolution解压到C盘根目录下。

(3)编译并运行实例项目

用管理员身份启动Visual Studio CTP,然后打开SilverlightSolution项目,将得到一个空的Silverlight程序页面,如图12-6所示。

978-7-111-36370-5-Part03-42.jpg

图12-6 Silverlight程序界面

(4)添加对HTML DOM对象的动态访问

在Page类中添加两个dynamic类型的对象doc和win,分别用于表示当前页面和窗口,修改后的Page类如下:

978-7-111-36370-5-Part03-43.jpg

然后,修改Page类的函数btnSearch_Click(),当用户单击”Get All”按钮后,更新用户搜索的内容,修改窗口的标题。

978-7-111-36370-5-Part03-44.jpg(www.xing528.com)

(5)添加Virtual Earth Jscript控件

打开解决方案中的测试页StartPage.htm,在<title>标签的前面添加如下Jave Script代码,引用Virtual Earth控件:

978-7-111-36370-5-Part03-45.jpg

然后,在<body>标签中添加如下代码,定义地图控件的位置和大小。只需通过简单的两步,就完成了对测试页面的修改。接下来即可通过C#访问和控制Virtual Earth控件了。

(6)用C#代码控制Virtual Earth控件

在Page类中添加如下代码控制Virtual Earth控件,以实现获取地图,添加Pin的功能。代码如下:

978-7-111-36370-5-Part03-46.jpg

为了体会动态编程所带来的便利,接下来看看在没有动态类型的C# 3.0中,AddPin()函数应该如何实现。如果是在C# 3.0中,doc,win和map都将是静态类型,为了执行这些对象的某些方法,需要进行显式的类型转换,同时,还需要将方法名作为字符串传递以实现方法的调用。很明显,C# 3.0中的实现过程非常繁琐,而C# 4.0中的实现是如此的简单、自然:

978-7-111-36370-5-Part03-47.jpg

接下来需要在适当的位置调用这两个函数,以实现地图的加载和Pin的添加。在Page类的Init()函数中添加GetMap()函数调用

978-7-111-36370-5-Part03-48.jpg

另外,在lstPictures_SelectionChanged()函数中添加AddPin()函数,当用户选择的图片变化后,重新获取Pin的位置并添加到地图上:

978-7-111-36370-5-Part03-49.jpg

(7)编译解决方案

至此,对项目的修改就全部完成了。重新编译整个解决方案,可以看到添加Virtual Earth控件后的页面。当在左侧列表中选择图片后,Pin会定位到这幅图片拍摄的地点,当把鼠标移动到Pin上时,则会显示图片和更多的相关信息,如图12-7所示。

978-7-111-36370-5-Part03-50.jpg

图12-7 添加Virtual Earth后的页面

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈