【发布时间】:2011-12-13 23:12:44
【问题描述】:
我有一个接口 [a] 和一个实现类 [b]。 [b] 除了已实现的方法之外,还有自己的方法。
//-----------
public interface a
{
void functionA();
}
//-----------
public class b:a
{
void functionA(){}
void functionB(){}
}
//------------
在解决方案内的项目 X 中。当我编码时:[项目是一个类库]
a test = new b();
test.functionB(); //It Works
在另一个项目中引用了库 [控制台应用程序]
a test = new b();
test.functionB(); //Error CS1061 --> a doesn't have a method called function b
对不起,名字是西班牙语。界面:pastebin.com/Unm5Adkd,实现者:pastebin.com/wmikck9H,程序:控制台应用:pastebin.com/Yus91hQL...谢谢大家的帮助。 :P
【问题讨论】:
-
它们都不应该工作;
a没有名为functionB的方法。 -
有效的代码示例有误。如果有扩展方法,您提供的代码应该只编译第一个示例。您提供的代码本身不会编译该示例。您是否省略了一些代码?
-
您是否使用“var”关键字声明第一个示例?我认为您需要发布一个完整的示例来说明您的问题。
-
-1 直到第一个样本处于可编译状态(或至少不会产生明显的“a没有函数B”)
-
我刚刚发布了 3 类的 pastebin 看原帖。我当然不编译。但是,如果我实现一个接口,我不必只有接口方法,我作为一个类可以有更多方法。多态性很好,但在项目之外是一团糟。我错过了什么吗?
标签: c# .net oop polymorphism