英語で読む

次の方法で共有


コンパイラ エラー CS0077

as 演算子は参照型または null 許容型で使用してください ('int' は null 非許容の値型です)。

as 演算子に 値型が渡されました。 asnull を返すことがあるため、これに渡すことができるのは、参照型null 許容値型だけです。

ただし、パターン マッチングis 演算子と共に使用すると、型チェックと割り当てを 1 つのステップで直接実行できます。

次の例では 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;
      } 
   }  
}