Compilerwarnung (Stufe 1) CS0420
"bezeichner": ein Verweis auf ein temporäres Feld wird nicht als temporär behandelt
Ein temporäres Feld sollte normalerweise nicht mit einem ref
- oder out-Parameter übergeben werden, da es im Geltungsbereich der Funktion nicht als temporär behandelt wird. Es gibt Ausnahmen, wie z.B. beim Aufrufen einer Interlocked-API. Genauso wie mit allen anderen Warnungen können Sie auch hier die #pragma-Warnung verwenden, um diese Warnung in den seltenen Fällen zu deaktivieren, in denen Sie absichtlich ein temporäres Feld als Verweisparameter verwenden.
Im folgenden Beispiel wird CS0420 generiert:
// CS0420.cs
// compile with: /W:1
using System;
class TestClass
{
private volatile int i;
public void TestVolatile(ref int ii)
{
}
public static void Main()
{
TestClass x = new TestClass();
x.TestVolatile(ref x.i); // CS0420
}
}