作为C#newbie,我无疑是,我有点困惑,你在使用WebClient和DownloadStringAsync方法时无法在DownloadStringCompletedEventHandler上设置返回类型。假设我想编写一些通用方法来返回任何网页的HTML内容,如果无法设置返回类型,我将如何返回字符串。我觉得我在这里遗漏了一些明显的东西,任何帮助都会受到赞赏!
谢谢!
答案 0 :(得分:2)
这个想法是,当数据准备就绪时,你会被WebClient
回调 - 当你订阅这个事件时,你基本上会说“当你这么做时打电话给你”完了“。当您从回调中返回时,您没有返回 代码,而是返回WebClient
。为什么它会想知道字符串,当它刚给你时? :)
不,这个想法是你的回调做了它需要的数据(在事件参数的Result
属性中)。这可能意味着将其存放在某个地方,或将其写入文件系统 - 无论您需要做什么。
别担心 - 异步思考很棘手。你会到达那里:)
答案 1 :(得分:0)
您没有设置返回类型,因为它使用标准偶数处理程序模式进行回调(即Object
发件人和EventArgs
参数)
页面内容将封装在传递给回调方法的DownloadStringCompletedEventArgs
中(更具体地说,DownloadStringCompletedEventArgs.Result
包含下载的数据)。
答案 2 :(得分:0)
DownloadStringCompletedEventHandler是一个事件处理程序。换句话说,它是一个类在完成从源下载字符串时调用的方法。事件的结果包含在参数中。因此,您附加到事件,然后在您的方法中,您可以使用您想要的参数。
希望这会有所帮助。