閱讀英文

共用方式為


編譯器錯誤 CS0077

as 運算子必須和參考類型或可為 Null 的類型一起使用 ('int' 是不可為 Null 的實值類型)。

傳遞了 實值類型as運算子。 由於 as 可能傳回 null,所以它只能傳遞參考型別可能為 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;
      } 
   }  
}