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
   }  
}