Поделиться через


Предупреждение компилятора (уровень 1) CS0420

Обновлен: Ноябрь 2007

Сообщение об ошибке

'identifier': ссылка на зависимое поле не будет обрабатываться как зависимая
'identifier': a reference to a volatile field will not be treated as volatile

Обычно, зависимое поле не должно передаваться с помощью параметра ref или out, так как оно не будет обрабатываться как зависимое в переделах области действия функции. Существуют исключения из этого правила, например при вызове сблокированных интерфейсов API. Как и в случае любого предупреждения, в тех редких случаях, когда в качестве передаваемого по ссылке параметра умышленно используется зависимое поле, для отключения этого предупреждения можно использовать директиву #pragma warning.

Следующий пример проводит к генерированию ошибки CS0420:

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