выполняет какое-то служебное взаимодействие, и код имеет тип
try
{
selection = getSelected(Return.Some.Office.InteropObject);
for ( int i = 0 ; i < selection.count ; i++)
yield return selection.item(i)
}
finally
{
Marshal.ReleaseComObject(selection);
}
Хотите знать, если это хорошая идея, заменить его на DisposableAction и изменить на
using ( var a = new DisposableAction(getSelected(Return.Some.Office.InteropObject)) )
{
foreach(var b in a.Items)
yield return b;
}