程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C# 4.0中的動態類型和動態編程(4)

C# 4.0中的動態類型和動態編程(4)

編輯:關於C語言

憶苦才能思甜。為了體會動態編程給我們帶來的便利,我們來看看在沒有動態類型的C# 3.0中, AddPin()函數應該如何實現。如果是在C# 3.0中,我們的doc,win和map 都將是靜態類型,為了執行這些 對象的某些方法,需要進行顯式的類型轉換,同時,還需要將方法名作為字符串傳遞以實現方法的調用。 很明顯,C# 3.0中的實現過程非常繁瑣,而C# 4.0中的實現是如此的優雅而自然。

void AddPin(Item item)
  {
ScriptObject loc = win.CreateInstance("VELatLong", item.Latitude, item.Longitude);
ScriptObject pin = (ScriptObject)map.Invoke("AddPushpin", loc);
pin.Invoke("SetTitle", item.Title);
pin.Invoke("SetDescription", item.Description);
map.Invoke("SetCenterAndZoom", loc, 7);
}

最後,我們需要在適當的位置調用這兩個函數,以實現地圖的加載和Pin的添加。在Page類的Init()函 數中添加GetMap()函數調用:

public void Init()
{
      GetMap();
}

另外,在lstPictures_SelectionChanged()函數中添加AddPin()函數,當用戶選擇的圖片變化後,重 新獲取Pin的位置並添加到地圖上:

void lstPictures_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
      Item selected = lstPictures.SelectedItem as Item;
      AddPin(selected);
}

7.編譯解決方案

到這裡為止,我們對項目的修改就全部完成了。重新編譯整個解決方案,我們可以看到添加Virtual Earth控件後的頁面。當我們在左側列表中選擇圖片後,Pin會定位到這幅圖片拍攝的地點,當我們把鼠標 移動到Pin上時,則會顯示圖片和更多的相關信息。

圖2 添加Virtual Earth控件後的頁面

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved