6

我想在我的 Outlook 2010 加载项中获取所有选定的电子邮件。我找到了这个MSDN 教程,但我是 C# 的初学者,我不太明白这行代码:Object selObject = this.Application.ActiveExplorer().Selection[3];

我相信Selection[]类似于 C# 中的重写运算符、索引器。但是,有什么办法可以看到它的实现吗?如果我浏览代码,我只会看到接口而不是实现。所以我不知道 Selection 对象的结构。真正的背后是什么operator []

另外,为什么所选项目从索引 1 而不是 0 开始?

4

2 回答 2

15

我知道这有点晚了,但这个问题在搜索引擎中排名很高。这是我用来在 Outlook Interop 中获取选定电子邮件的解决方案:

internal static IEnumerable<MailItem> GetSelectedEmails()
{
     foreach (MailItem email in new Microsoft.Office.Interop.Outlook.Application().ActiveExplorer().Selection)
     {
          yield return email;
     }
}
于 2018-02-07T11:44:10.210 回答
5

该行检索第三条选定的消息。
Selection[] 等价于 Selection.Item() - Item 函数被标记为索引属性访问器。
您看不到实现 - 它全部在 Outlook 对象模型中。
所有 Outlook 集合都以 1 开头,而不是 0。这是它过去在 VB 中的方式,因此 Outlook 对象模型使用相同的约定。

于 2013-02-11T14:07:53.800 回答