Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从方法泛型推断类型_C#_Java_Generics - Fatal编程技术网

C# 从方法泛型推断类型

C# 从方法泛型推断类型,c#,java,generics,C#,Java,Generics,我来自Java背景,我从c#中的等价物中寻找以下内容 public interface Reader { <T> T read(Class<? extends T> type); } 我本来希望类似的东西在c#中能起作用,但我不确定它会起作用 public interface Reader { T Read<T>(); } 公共接口读取器{ T Read(); } 然后做这个 public class TypeReader : Reader

我来自Java背景,我从c#中的等价物中寻找以下内容

public interface Reader {
   <T> T read(Class<? extends T> type);
}
我本来希望类似的东西在c#中能起作用,但我不确定它会起作用

public interface Reader {
   T Read<T>();
}
公共接口读取器{
T Read();
}
然后做这个

public class TypeReader : Reader {
   public T Read<T>() {
      Type type = T.GetType();
      ...
   }
}
公共类类型读取器:读取器{
公众阅读{
Type Type=T.GetType();
...
}
}

在c#?

中也可能出现类似的情况吗?是的,但是您需要
typeof(T)
,而不是
T.GetType()
,并且:

Cat cat = reader.Read<Cat>();
Cat=reader.Read();
Cat cat = reader.Read<Cat>();