私は比較的新しいC#とOfficeオートメーションに慣れていますが、最近私は自分自身が誰かのOutlookの受信トレイへの参照を取得し、受信した時間で電子メールをソートしようとしています。 InboxがMicrosoft.Office.Interop.Outlook.Items型のローカル変数に割り当てられているソートがローカル変数で実行され、それが動作するWeb上の他の場所で解決策が見つかるまでは機能しませんでした。しかし、その理由は何ですか?私はC#オブジェクトは参照であり、新しいOutlook.Inbox参照を宣言してからアイテムをユーザーの受信トレイから割り当てると、実際の電子メールへの追加ポインターとして機能し、実際には各電子メールをコピーしないと考えました新しいコレクションにしたがって、元の参照でSortを呼び出すよりも、違いはありません。明らかに私は間違っているので、私は説明を感謝します。気高い!C#での参照と予期しない結果
using Outlook = Microsoft.Office.Interop.Outlook;
...
Outlook.Folder oInbox = (Outlook.Folder)oApp.Session.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox);
oInbox.Items.Sort("[Received]", true); //this doesn't produce expected results
Outlook.Items inboxFolder = (Outlook.Items)oInbox.Items;
inboxFolder.Sort("[Received]", true); //this DOES sort the items!
oInbox.Itemsのタイプは何ですか?その型は、異なる動作を持たせるためにSortメソッドをオーバーライドすることができます。 Outlook.Itemsにキャストすると、基本クラスから動作が得られます。 – cadrell0