Передача var в качестве параметра метода в C # - PullRequest
0 голосов
/ 22 мая 2018

Я пытаюсь передать параметр 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);
    }
}

Самый простой способ - передать переменную;однако, если есть тип данных, который может содержать request, он тоже должен работать.Есть ли в любом случае, чтобы сделать это, или мне нужно передать каждый элемент в отдельности?

Ответы [ 3 ]

0 голосов
/ 22 мая 2018

Вы можете использовать object или dynamic, var невозможно

0 голосов
/ 22 мая 2018

Похоже, что вы используете 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);
}
0 голосов
/ 22 мая 2018

var не "тип", а просто компилятор.Он достаточно умен, чтобы знать, какой это тип.Фактически, вы можете просто навести на него курсор и увидеть его.

Измените параметр PrintResponseStuff на этот тип.

...