2013-02-11 100 views
5

我想要在我的Outlook 2010加載項中獲取所有選定的電子郵件。我發現這個MSDN tutorial,但我在C#中的初學者,我不太瞭解這行代碼:Object selObject = this.Application.ActiveExplorer().Selection[3];C#Outlook加載項獲取選定的電子郵件

我相信Selection[]是一樣的東西覆蓋的運營商,索引在C#。但是,有沒有辦法看到它的實現?如果我通過代碼,我只看到接口,但沒有實現。所以我不知道Selection對象的結構。 operator []背後究竟是什麼。

此外,爲什麼選擇的項目從索引1開始而不是0?

回答

4

該行檢索第三個選定的消息。
Selection []等同於Selection.Item() - Item函數被標記爲索引屬性訪問器。
你看不到實現 - 它全部在Outlook對象模型中。
所有的Outlook集合都以1開頭,而不是從0開始。這就是它以前在VB中的樣子,因此Outlook對象模型使用相同的約定。

1

我知道這有點晚,但這個問題在搜索引擎中排名很高。這裏是我用來在Outlook Interop中獲得選定電子郵件的解決方案:

internal static IEnumerable<MailItem> GetSelectedEmails() 
     { 
      foreach (MailItem email in new Microsoft.Office.Interop.Outlook.Application().ActiveExplorer().Selection) 
      { 
       yield return email; 
      } 
     } 
+0

永遠不會太晚,我現在正在與VSTO合作,這對我有所幫助。 +1 – Rafael 2018-03-07 19:43:00

相關問題