2009-02-27 70 views
-1

下面的代码行给出的标题错误:显式转换存在C#

ITestClass t = new TestClass(); 

的TestClass实现:

public class TestClass : ITestClass { 


    public static TestClass Instance 
     { 
      get 
      { 
       return TestClass.Instance; 
      } 
     } 

//Interface members 

} 

我又有另外一批有着相近接口的类,其中这个转换的作品,为什么没有按它在这里工作?

+0

你还没有给出足够的代码来调试这个。请举个简短但完整的例子。我的猜测是,你已经将TestClass和ITestClass混淆在某个地方,但从问题的角度来看,这并不明显。 – 2009-02-27 15:46:42

+0

目前的代码似乎会导致无限递归堆栈溢出。 – Randolpho 2009-02-27 15:51:34

回答

5

您尝试分配的接口很可能不是您新建的类的一部分。仔细检查你的界面实现错误,这是一个完全有效的代码。

如果您有特定的错误,请提供产生相同错误的代码,则在编译时您提供的代码不会出错。

+0

@joshperry,你是正确的,我试图分配的界面不存在,我认为它确实 – CodeMonkey 2009-02-27 15:52:24

4

我不确定你输入的错误,但你列出的属性是一个错误。 getter只返回属性,因此是无限递归的。如果您试图访问它,这将导致运行时堆栈溢出。

0

这种错误的唯一可能性是TestClass或ITestClass在一种情况下和另一种情况下并不意味着相同的事情。

最常见的原因是让包含TestClass的程序集和您的主要程序集引用2个不同的dll文件都带有名为ITestClass的接口。

相关问题