共用方式為


編譯器錯誤 CS1674

更新:2007 年 11 月

錯誤訊息

'T': 在 using 陳述式中使用的型別必須可以隱含轉換為 'System.IDisposable'

using 陳述式是用來確定 using 區塊結尾物件的處置,因此這類陳述式中只能使用可處置的型別。例如,實值型別不是可處置的,而未限制為類別的型別參數也可能不假設為可處置的。

範例

下列範例會產生 CS1674。

// CS1674.cs
class C
{
   public static void Main()
   {
      int a = 0;
      a++;

      using (a) {}   // CS1674
   }
}

下列範例會產生 CS1674。

// CS1674_b.cs
using System;
class C {
   public void Test() {
      using (C c = new C()) {}   // CS1674
   }
}

// OK
class D : IDisposable {
   void IDisposable.Dispose() {}
   public void Dispose() {}

   public static void Main() {
      using (D d = new D()) {}
   }
}

下列範例說明需要類別的型別條件約束,以保證未知的型別參數是可處置的。下列範例會產生 CS1674。

// CS1674_c.cs
// compile with: /target:library
using System;
public class C<T>
// Add a class type constraint that specifies a disposable class.
// Uncomment the following line to resolve.
// public class C<T> where T : IDisposable
{
   public void F(T t)
   {
      using (t) {}   // CS1674
   }
}