Предупреждение компилятора (уровень 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
}
}