Compilerfehler CS1939
Aktualisiert: November 2007
Fehlermeldung
Die Bereichsvariable "Name" kann nicht als out-Parameter oder ref-Parameter übergeben werden.
Cannot pass the range variable 'name' as an out or ref parameter.
Bei einer Bereichsvariablen handelt es sich um eine schreibgeschützte Variable, die in einen Abfrageausdruck aufgenommen wird und als Bezeichner für alle nachfolgenden Elemente in der Quellsequenz dient. Da sie nicht geändert werden kann, ist die Übergabe durch ref oder durch out überflüssig. Daher sind beide Vorgänge unzulässig.
So beheben Sie diesen Fehler
- Übergeben Sie die Bereichsvariable als Wert.
Beispiel
Durch das folgende Beispiel wird der Fehler CS1939 ausgelöst:
// cs1939.cs
using System.Linq;
class Test
{
public static void F(ref int i)
{
}
public static void Main()
{
var list = new int[] { 0, 1, 2, 3, 4, 5 };
var q = from x in list
let k = x
select Test.F(ref x); // CS1939
}
}