我正在读这个http://msdn.microsoft.com/en-us/library/87d83y5b(v=vs.80).aspx,但我想知道,使用接口有什么区别或好处,而不是简单地创建一个带有属性的类,并通过“using MyClass.cs
将它添加到您的类中? “看起来你必须实例化方法或属性类......
感谢您的建议。
答案 0 :(得分:2)
几个不同的类都可以实现相同的接口,从而共享一组特定的特征。例如。实现IEnumerable
接口的所有类型都可以枚举,而不需要任何其他共同点。接口允许类型的限制性方式更少,以支持特定功能。
答案 1 :(得分:2)
接口不,因此您可以使用接口的对象。相反,它是必须 创建这些对象。
答案 2 :(得分:1)
我不知道两者是如何相似的。接口定义了客户端如何使用代码。 using关键字(应该后跟命名空间名称而不是文件名)只允许您使用该命名空间中的对象,而不必每次都为它们添加前缀。
一个更常见的问题是实现接口和派生类之间的区别。也许这就是你想要问的问题。这个问题已在其他地方广泛涉及。
答案 3 :(得分:1)
接口仅包含逻辑的签名。它必须在您的子类中完全实现。我们使用"使用"当我们想要包含与项目名称空间不同的名称空间时,如果您的类或接口位于同一名称空间中,则不需要使用"使用"条款。
您可以使用接口继承子类,并使代码更加灵活。
它的一个例子是:
public interface IClown
{
string FunnyThingIHave { get; }
void Honk();
}
public class TallGuy : IClown
{
public string FunnyThingIHave {
get { return "big shoes"; }
}
public void Honk() {
MessageBox.Show("Honk honk!");
}
}
public class Joker:IClown
{
public string FunnyThingIHave
{
get {return "I have a clown car"}
}
public void Honk()
{
MessageBox.Show("Honk Bonk");
}
}
public class FunnyClowns
{
Joker joker = new Joker();
TallGuy tguy = new TallGuy();
string WhichFunnyThingIWant(IClown clownType)
{
clownType.Honk();
}
}
现在正在做的是定义一个小丑接口,然后为它定义两个子类,然后第三个类可以动态调用IClown的clowntype对象。这是一个简单的例子,但这种逻辑可以应用于许多其他情况。这就是接口真正有用的地方。我希望这会有所帮助..