給出兩個接口,如這些時隱式轉換爲System.IDisposable:無法使用 「使用」
public interface MyInterface1 : IDisposable
{
void DoSomething();
}
public interface MyInterface2 : IDisposable
{
void DoSomethingElse();
}
...和實現類是這樣的:
public class MyClass : IMyInterface1, IMyInterface2
{
public void DoSomething() { Console.WriteLine("I'm doing something..."); }
public void DoSomethingElse() { Console.WriteLine("I'm doing something else..."); }
public void Dispose() { Console.WriteLine("Bye bye!"); }
}
...我倒是假設下面的代碼片段應該編譯:
class Program
{
public static void Main(string[] args)
{
using (MyInterface1 myInterface = new MyClass()) {
myInterface.DoSomething();
}
}
}
...相反,我總是收到以下錯誤信息:
Error 1 'IMyInterface1': type used in a using statement must be implicitly convertible to 'System.IDisposable'
任何想法?謝謝。
你肯定你」是否正確輸入了一切?在頂部有'MyInterface1'和'MyInterface2',但稍後有'IMyInterface1'和'IMyInterface2'。 – dasblinkenlight
@ j3d - 請僅發佈_accurate_代碼。在發佈前驗證它。 –
如上所述,我們得到*其他*編譯錯誤,而不是你所描述的錯誤。但是,您在編寫上述類型時,每種接口類型(本身)都可以隱式轉換爲'IDisposable'。 –