【发布时间】:2015-12-26 01:05:20
【问题描述】:
我有一个班级叫RootObject:
public class RootObject
{
public string Name { get; set; }
public int Age { get; set; }
public int Address { get; set; }
}
public void getdata()
{
WebRequest request = WebRequest.Create("http://addresstojson.com/json.json");
WebResponse response = await request.GetResponseAsync();
using (var stream = new StreamReader(response.GetResponseStream()))
{
json = JsonConvert.DeserializeObject<RootObject>(stream.ReadToEnd());
}
}
在getdata()方法的最后一条语句中,传入了类型:
JsonConvert.DeserializeObject</*here*/>(Stream.ReadToEnd())
我想将类型作为参数传递给getdata(RootObject) 方法。
有没有办法在 C# 中使用泛型来做到这一点?
【问题讨论】:
-
public void getdata<T>() { ... DeserializeObject<T>(...) -
泛型类型是编译时常量,如果你需要一个泛型参数,你的方法必须声明它。
-
getdata这样做是没有意义的,除非您也将其更改为返回T(因为json本身必须是T)。
标签: c#