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


Ошибка компилятора CS0077

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

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

Оператор as должен быть использован со ссылочным типом или типом, допускающим значение null ('int' — тип значения, не допускающий значение null).
The as operator must be used with a reference type or nullable type ('int' is a non-nullable value type).

Оператору as был передан тип значения. Поскольку оператор as может возвращать значение null, ему можно передавать только ссылочные типы или типы, допускающие значение null. Дополнительные сведения о типах, допускающих значение null, см. в разделе Типы, допускающие значения NULL (руководство по программированию на C#).

Следующий пример кода приводит к возникновению ошибки CS0077.

// CS0077.cs
using System;

class C
{
}

struct S
{
}

class M
{
   public static void Main()
   {
      object o1, o2;
      C c;
      S s;

      o1 = new C();
      o2 = new S();

      s = o2 as S;  // CS0077, S is not a reference type.
      // try the following line instead
      // c = o1 as C;
   }
}