我来自Java背景,我正在从c#中的等价物中寻找以下内容.
public interface Reader {
<T> T read(Class<? extends T> type);
}
Run Code Online (Sandbox Code Playgroud)
这样我可以执行以下操作,约束参数并推断返回类型.
Cat cat = reader.read(Cat.class);
Dog dog = reader.read(Dog.class);
Run Code Online (Sandbox Code Playgroud)
我希望这样的东西可以在c#中运行,但我不确定它会不会.
public interface Reader {
T Read<T>();
}
Run Code Online (Sandbox Code Playgroud)
而且这样做.
public class TypeReader : Reader {
public T Read<T>() {
Type type = T.GetType();
...
}
}
Run Code Online (Sandbox Code Playgroud)
这样的事情在c#中是否可能?
是的,但你想要typeof(T),而不是T.GetType(),和:
Cat cat = reader.Read<Cat>();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
168 次 |
| 最近记录: |