Pourquoi ne peut-itérateur méthodes, prendre le " ref " ou " out " paramètres?

J'ai essayé plus tôt aujourd'hui:

public interface IFoo
{
    IEnumerable<int> GetItems_A( ref int somethingElse );
    IEnumerable<int> GetItems_B( ref int somethingElse );
}


public class Bar : IFoo
{
    public IEnumerable<int> GetItems_A( ref int somethingElse )
    {
        //Ok...
    }

    public IEnumerable<int> GetItems_B( ref int somethingElse )
    {
        yield return 7; //CS1623: Iterators cannot have ref or out parameters            

    }
}

Quelle est la logique derrière cela?

InformationsquelleAutor Trap | 2009-06-15