C#接口函数返回类,具体取决于它的实现位置

时间:2011-08-17 14:03:45

标签: c# interface

我想有一个接口,根据什么类实现它,接口声明的函数应该返回一个特定的类。

我应该使用这样的东西吗?

public interface IMyInterface
{
    T returnClassInstance();
}

当我想将它实现到类中时应该怎么看?

public class MyClass : IMyInterFace
{
    public T returnClassInstance()
    {
        ClassInstance class = new ClassInstance();
        return (T)class;
    }    
}

这样的事情的最佳方法是什么?

4 个答案:

答案 0 :(得分:3)

您可以在界面中使用泛型 -

public interface IMyInterface<T>
{
    T returnClassInstance();
}

在课堂上实现这个界面时,只需使用泛型

中的特定类
public class MyClass : IMyInterface<ClassInstance>
{
    public ClassInstance returnClassInstance()
    {
        ClassInstance obj = new ClassInstance();
        return obj;
    }
}

答案 1 :(得分:2)

泛型

public interface IMyInterface<T>
{
    T returnClassInstance();
}

public class MyClass : IMyInterFace<ClassInstance>
{
    public ClassInstance returnClassInstance()
    {
        ClassInstance class = new ClassInstance();
        return class;
    }    
}

答案 2 :(得分:1)

您可以这样声明:

public interface IMyInterface<T>
{
    T ReturnClassInstance();
}

并实施它:

public class MyClass : IMyInterface<MyClass>
{
    public T ReturnClassInstance()
    {
        return this;
    }
}

答案 3 :(得分:1)

您正在寻找Class Factory模式。关于它,这是一个很好的CodeProject article