私は C# と Office オートメーションに比較的慣れていませんが、最近、誰かの Outlook 受信トレイへの参照を取得しようとして、受信時刻で電子メールを並べ替えようとしていることに気付きました。受信トレイが Microsoft.Office.Interop.Outlook.Items 型のローカル変数に割り当てられ、ローカル変数で並べ替えが実行され、機能するソリューションを Web 上の他の場所で見つけるまで、機能しませんでした。しかし、問題はなぜですか?C# ではオブジェクトは参照であり、新しい Outlook.Inbox 参照を宣言してユーザーの受信トレイからアイテムを割り当てると、実際の電子メールへの追加のポインターとして機能し、実際には各電子メールをコピーしません。新しいコレクションに。つまり、元の参照で Sort を呼び出すのと同じはずですよね? 明らかに私は間違っているので、私は' 説明をいただければ幸いです。サンクス!!
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!