-1

语言:C# / 编码使用:Visual Studio / 使用 System.Net.Http.dll

您好,请帮帮我我在 C# 中创建的代码源项目中有 4 个错误,这是所有错误:

(我是初学者)但是如果您可以发布已修复的代码,我非常感谢

错误 1 ​​错误 1(代码)

错误 2 错误 2(代码)

错误 3 错误 3(代码)

错误 4 错误 4(代码)

using System;
using System.ComponentModel;
using System.Drawing;
using System.Net;
using System.Net.Http;
using System.Runtime.CompilerServices;
using System.Text;
using System.Windows.Forms;

namespace CheckerProject
{
    public partial class Checker
    {
        public Checker()
        {
            InitializeComponent();
        }

        private async void Check()
        {
            string text = this.textBox1.Text;
            using (HttpClientHandler httpClientHandler = new HttpClientHandler
            {
                AutomaticDecompression = (DecompressionMethods.GZip | DecompressionMethods.Deflate)
            })
            {
                using (HttpClient httpClient = new HttpClient(httpClientHandler))
                {
                    TaskAwaiter<HttpResponseMessage> taskAwaiter = httpClient.PostAsync("https:\\API.com", new StringContent("{\"onlineId\":\"" + text + "\",\"reserveIfAvailable\":false}".ToString(), Encoding.UTF8, "application/json")).GetAwaiter();
                    if (!taskAwaiter.IsCompleted)
                    {
                        await taskAwaiter;
                        TaskAwaiter<HttpResponseMessage> taskAwaiter2;
                        taskAwaiter = taskAwaiter2;
                        taskAwaiter2 = default(TaskAwaiter<HttpResponseMessage>);
                    }
                    HttpResponseMessage result = taskAwaiter.GetResult();
                    taskAwaiter = default(TaskAwaiter<HttpResponseMessage>);
                    HttpResponseMessage httpResponseMessage = result;
                    HttpResponseMessage httpResponseMessage2 = httpResponseMessage;
                    httpResponseMessage = null;
                    TaskAwaiter<string> taskAwaiter3 = httpResponseMessage2.Content.ReadAsStringAsync().GetAwaiter();
                    if (!taskAwaiter3.IsCompleted)
                    {
                        await taskAwaiter3;
                        TaskAwaiter<string> taskAwaiter4;
                        taskAwaiter3 = taskAwaiter4;
                        taskAwaiter4 = default(TaskAwaiter<string>);
                    }
                    string result2 = taskAwaiter3.GetResult();
                    taskAwaiter3 = default(TaskAwaiter<string>);
                    string text2 = result2;
                    string text3 = text2;
                    text2 = null;
                    if (httpResponseMessage2.StatusCode.ToString() == "429")
                    {
                        //Function
                    }
                    if (httpResponseMessage2.StatusCode != HttpStatusCode.BadRequest)
                    {
                        if (httpResponseMessage2.StatusCode == HttpStatusCode.Created)
                        {
                            //Function
                        }
                        else
                        {
                            //Function
                        }
                    }
                    else
                    {
                        //Function
                        if (text3.Contains("Online id already exists"))
                        {
                            //Function
                        }
                        if (text3.Contains("Improper"))
                        {
                            //Function
                        }
                    }
                    httpResponseMessage2 = null;
                    text3 = null;
                }
                HttpClient httpClient = null;
            }
            HttpClientHandler httpClientHandler = null;
        }
    }
}

4

1 回答 1

3

我将回答前两个错误(它们是同一个问题)。

您应该删除以下 2 行:

HttpClient httpClient = null;
HttpClientHandler httpClientHandler = null;

您在这里所做的是声明 2 个变量并将值分配给'null'它们。

你的意思是适当地分配'null'给现有的变量。但是这不是必需的,因为它们是在一个'using'块内声明的,它会自动调用该'Dispose'方法。

于 2018-10-29T21:42:49.897 回答