abstract class someClass
{
public abstract IProduct SomeMethod();
}
public interface IProduct
{
string Operation();
}
我看到上面的代码在抽象类中定义了一个带有类型接口的方法,我想知道它的用法。有人能解释一下吗?
你在问这个:
abstract class SomeBaseClass
{
public abstract IProduct SomeMethod();
}
在这种情况下,IProduct
可以表示实现接口的任何对象,并且方法SomeMethod()
可以保证返回实现IProduct
的某个类的对象。
在设计要求所有从SomeBaseClass
派生的类都能够创建遵循IProduct
接口的对象的情况下,这有许多用途。
c#中的接口就像保证特定行为和属性的契约。
这意味着无论实际实现如何,下面这样的代码都是有效的
SomeBaseClass f = ...
IProduct p = f.SomeMethod();
string op = p.Operation();