我试图将var
参数传递给方法:
class Program
{
static void Main()
{
var client = new RestClient("http://example.com");
var request = new RestRequest("resource/{id}", Method.POST);
var response = client.Execute(request);
PrintResponseStuff(response);
}
public static void PrintResponseStuff(var response)
{
Console.WriteLine(response.StatusCode);
Console.WriteLine(response.StatusDescription);
Console.WriteLine(response.IsSuccessful);
Console.WriteLine(response.Content);
Console.WriteLine(response.ContentType);
}
}
最简单的方法是传递var;但是,如果有一个可以容纳request
的数据类型也应该有效。反正这样做还是我需要单独传递每个项目?
答案 0 :(得分:5)
var
不是“类型”,而只是编译器糖。它足够聪明,知道它是什么类型。事实上,你可以将鼠标悬停在它上面并看到它。
将PrintResponseStuff
参数更改为该类型。
答案 1 :(得分:3)
看起来您正在使用RestSharp,并且根据您调用的示例代码RestClient.Execute()
,仅可以返回IRestResponse
。所以你的代码很容易:
static void Main()
{
var client = new RestClient("http://example.com");
var request = new RestRequest("resource/{id}", Method.POST);
//response is always IRestResponse if you call Execute()
var response = client.Execute(request);
PrintResponseStuff(response);
}
public static void PrintResponseStuff(IRestResponse response)
{
Console.WriteLine(response.StatusCode);
Console.WriteLine(response.StatusDescription);
Console.WriteLine(response.IsSuccessful);
Console.WriteLine(response.Content);
Console.WriteLine(response.ContentType);
}
答案 2 :(得分:-1)
您可以使用object
或dynamic
,var
是不可能的