Ошибка при использовании SharpDevelop

У меня есть код:

Outlook.Application outLookApp = new Outlook.Application();
Outlook.Inspector inspector = outLookApp.ActiveInspector();
Outlook.NameSpace nameSpace = outLookApp.GetNamespace("MAPI");
Outlook.MAPIFolder inbox = nameSpace.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox);
String sCriteria = "[SenderEmailAddress] = '[email protected]'";
Outlook.Items filteredItems = inbox.Items.Restrict(sCriteria);
// totaly sure that count > 0;
Outlook.MailItem item = filteredItems[1];

В последней строке у меня есть ошибка: «Невозможно неявно преобразовать тип« объект »в« Microsoft.Office.Interop.Outlook.MailItem ». Существует явное преобразование (вам не хватает приведения?)». Я не знаю почему. Ранее я использовал VisualStudio 2010, но срок действия пробной версии истек. Есть ли надежда запустить это на SharpDevelop?


person Sebastian    schedule 07.06.2010    source источник


Ответы (1)


Это не похоже на ошибку SharpDevelop, похоже, вам просто нужно приведение. Попробуй это:

Outlook.MailItem item = (Outlook.MailItem)filteredItems[1];

(предполагается, что объекты в filteredItems на самом деле относятся к этому типу. Вы можете проверить, так ли это, перед этим назначением.)

Кроме того, вы можете использовать Visual Studio 2010 Express — http://www.microsoft.com/express/

person Graham Clark    schedule 07.06.2010
comment
Спасибо, это помогает мне. Но я почти уверен, что этот код работает в VS без приведения. Есть ли разница между этими инструментами? - person Sebastian; 08.06.2010
comment
Ошибка, которую вы показываете, исходит от компилятора, а не от SharpDevelop или Visual Studio. Может быть, вы используете платформу Mono с SharpDevelop? Это будет использовать другой компилятор, который может выдавать разные сообщения. Или, может быть, у вас просто разные настройки для одного и того же компилятора в двух средах разработки. - person Graham Clark; 08.06.2010