Compilerfehler CS1951
Aktualisiert: November 2007
Fehlermeldung
Der Lambda-Ausdruck einer Ausdrucksbaumstruktur darf weder einen out-Parameter noch einen ref-Parameter enthalten.
An expression tree lambda may not contain an out or ref parameter.
In einer Ausdrucksbaumstruktur werden Ausdrücke lediglich als Datenstrukturen dargestellt. Es gibt keine Möglichkeit, bestimmte Speicheradressen darzustellen, wie dies bei der Übergabe eines Parameters durch einen Verweis erforderlich ist.
So beheben Sie diesen Fehler
- Die einzige Möglichkeit besteht darin, den ref-Modifizierer aus der Delegatfunktion zu entfernen und den Parameter als Wert zu übergeben.
Beispiel
Durch das folgende Beispiel wird der Fehler CS1951 ausgelöst:
// cs1951.cs
using System.Linq;
public delegate int TestDelegate(ref int i);
class Test
{
static void Main()
{
System.Linq.Expressions.Expression<TestDelegate> tree1 = (ref int x) => x; // CS1951
}
}