将var作为C#中的方法参数传递

时间:2018-05-22 18:48:39

标签: c# oop var

我试图将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的数据类型也应该有效。反正这样做还是我需要单独传递每个项目?

3 个答案:

答案 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)

您可以使用objectdynamicvar是不可能的