c#接口方法必须具有从自身派生的返回类型

时间:2016-01-19 15:54:43

标签: c# .net types .net-4.5

我正在寻找一种有效的方法来做这样的伪代码。

public interface INormalizedObject{
    void someMethodThatHappensToNormalizedObjects();
    T NormalizeObject(T obj) where T : derives from INormalizedObject;
}

具体来说,如何在接口上放置一个类型约束,方法NormalizeObject返回一个类型为base INormalizedObject的对象?

2 个答案:

答案 0 :(得分:7)

如果您希望xclip //mine was version 1.3 表示"实现此接口的类型",您可以使接口通用:

T

然后实施它:

public interface INormalizedObject<T> 
   where T : INormalizedObject<T>
{
    T NormalizeObject(T obj);
}

但是你实际似乎要求的只是这个:

public class Foo : INormalizedObject<Foo>
{
    public Foo NormalizeObject(Foo obj)
    {
    }
}

因为您的所有代码都应该知道。

答案 1 :(得分:0)

我不认为你可以在这里使用这个词,因为它需要你的方法是静态的。 你能试试吗

WndProc