iT邦幫忙

2

C# 練習 語法問題

c#
  • 分享至 

  • xImage
....
                        if (today == "05") 
                {
                ...這上面做組url的工作              
                    string urlXX = "http://jsonplaceholder.typicode.com/fewf/.....";

                    string send = Run(url= urlXX);
                    async void Run(string url)
                    {
                        
                        HttpClient client = new HttpClient() { BaseAddress = new Uri(url) };
                        using (HttpResponseMessage response = await client.GetAsync("posts"))
                        using (HttpContent content = response.Content)
                        {
                            // 將 httpcontent 轉為 string
                            string result = await content.ReadAsStringAsync();
                            // linqpad 顯示資料用
                            if (result != null) ;
                            //   result.Dump();
                        }
                    }
                    ....
                    }

參考教學練習時 拿之前程式在其中一段增加使用GET 組成一個url 得到對方網站的response 卡在要怎麼做可以把組好的url 傳遞進去
string send = Run(url= urlXX); 如果這樣會 名稱url目前不存在於內容中
原本網站的教學是
HttpClient client = new HttpClient() { BaseAddress = new Uri(url) };
他的rul是直接http://jsonplaceholder.typicode.com/
有試過嘗試把Run 拿到外面
public static async void Run(string url){}
但還是無法傳給他url
請問該怎麼改寫才能把組好的url 傳進去呢?

yuwen iT邦新手 4 級 ‧ 2020-06-08 10:35:49 檢舉
async 一個 void 是很奇怪的事情,雖然語法上沒有錯。
但這就像是把箭射出去不要撿回來的概念,在執行時,RUN方法不會建立任何context switch,造成url參數拿不到外部提供的變數。
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

1
海綿寶寶
iT邦大神 1 級 ‧ 2020-06-07 09:54:58
最佳解答

試試把Run(url= urlXX)改成Run(urlXX)
以下是簡易測試用程式

using System;

class Program
{
    static void Main() {
        string urlXX = "https://ithelp.ithome.com.tw";
        // Run(url=urlXX);     //The name `url' does not exist in the current context
        Run(urlXX);         //Url=http://ithelp.ithome.com.tw
    }
    static void Run(string url) {
        Console.Write("Url=" + url);
    }
}

我要發表回答

立即登入回答