Cha*_*sen 0 .net c# types .net-4.5
我正在寻找一种有效的方法来做这样的伪代码.
public interface INormalizedObject{
void someMethodThatHappensToNormalizedObjects();
T NormalizeObject(T obj) where T : derives from INormalizedObject;
}
Run Code Online (Sandbox Code Playgroud)
具体来说,如何在接口上放置一个类型约束,方法NormalizeObject返回一个类型为base INormalizedObject的对象?
如果您想T表示"实现此接口的类型",您可以使接口通用:
public interface INormalizedObject<T>
where T : INormalizedObject<T>
{
T NormalizeObject(T obj);
}
Run Code Online (Sandbox Code Playgroud)
然后实现它:
public class Foo : INormalizedObject<Foo>
{
public Foo NormalizeObject(Foo obj)
{
}
}
Run Code Online (Sandbox Code Playgroud)
但你实际上似乎要求的只是这样:
public interface INormalizedObject
{
INormalizedObject NormalizeObject(INormalizedObject obj);
}
Run Code Online (Sandbox Code Playgroud)
因为这是你需要知道的所有代码.
| 归档时间: |
|
| 查看次数: |
759 次 |
| 最近记录: |