다음을 통해 공유


컴파일러 오류 CS0077

as 연산자는 참조 형식 또는 nullable 형식과 함께 사용해야 합니다. 'int'는 null을 허용하지 않는 값 형식입니다.

as 연산자가 값 형식으로 전달되었습니다. asnull을 반환할 수 있으므로 참조 형식 또는 null 허용 값 형식만 전달할 수 있습니다.

그러나 is 연산자와 패턴 일치사용하여 한 단계에서 형식 검사 및 할당을 직접 수행할 수 있습니다.

다음 샘플에서는 CS0077을 생성합니다.

// CS0077.cs  
using System;  

struct S  
{  
}  
  
class M  
{  
   public static void Main()  
   {  
      object o;
      S s;  

      o = new S();
  
      s = o as S;    // CS0077, S is not a reference type

      // Use pattern matching instead of as
      if (o is S sValue)
      {
          s = sValue;
      } 
   }  
}