我希望在Outlook 2010加载项中获取所有选定的电子邮件。我找到了这个MSDN tutorial,但我是C#的初学者,我不太明白这行代码:Object selObject = this.Application.ActiveExplorer().Selection[3];
我相信Selection[]
类似于被覆盖的运算符,C#中的索引器。但是,有没有办法看到它的实现?如果我浏览代码,我只看到接口但不看实现。所以我不知道Selection对象的结构。 operator []
背后的真正含义。
另外,为什么所选项目从索引1开始而不是0?
答案 0 :(得分:5)
该行检索第三个选定的消息 Selection []等同于Selection.Item() - Item函数被标记为索引属性访问器 您无法看到实现 - 它都在Outlook对象模型中 所有Outlook集合都以1开头,而不是0.这就是它以前的用法,因此Outlook对象模型使用相同的约定。
答案 1 :(得分:4)
我知道它有点晚了,但这个问题在搜索引擎中排名很高。以下是我用于在Outlook Interop中选择电子邮件的解决方案:
internal static IEnumerable<MailItem> GetSelectedEmails()
{
foreach (MailItem email in new Microsoft.Office.Interop.Outlook.Application().ActiveExplorer().Selection)
{
yield return email;
}
}