【发布时间】:2017-03-19 18:57:54
【问题描述】:
我是 F# 新手,只是想知道如何在 F# 中编写以下 C# 代码?
// Issue request and remember to dispose of the response
using (GetObjectResponse response = client.GetObject(request))
{
using (StreamReader reader = new StreamReader(response.ResponseStream))
{
string contents = reader.ReadToEnd();
Console.WriteLine("Object - " + response.Key);
Console.WriteLine(" Version Id - " + response.VersionId);
Console.WriteLine(" Contents - " + contents);
}
}
我已经阅读了使用 use 的文档并想出了这个:
use response = s3Client.GetObject(req)
(
use reader = new StreamReader(response.ResponseStream)
urlCheck = reader.ReadToEnd())
Console.WriteLine(urlCheck)
但它根本不起作用。有人可以帮忙吗?
编辑
我使用此链接:f# keyword use and using 作为上述解决方案的模板,但它不起作用。
我得到的错误是“阅读器不是函数,不能应用”。
另外,我知道我可以将它留在 C# 中,但我想看看我是否可以将它移植到 F#。对此的任何建议将不胜感激。
【问题讨论】:
-
混合语言没有错,也许只是把它留在C#中
-
“不工作”通常是描述您的问题的糟糕方式 - 会发生什么?你有错误吗? (如果是这样,请告诉我们错误)。您是否得到了意想不到的回应(如果有,请描述预期和实际结果)
-
我在上面做了修改。
-
带有 urlCheck = reader.ReadToEnd() 的那一行,也许你的意思是“让 urlCheck = ...”,因为现在它变成了布尔测试。
-
在 F# 中,我们几乎不会像这样用括号缩进“使用”。收益微乎其微,不值得牺牲可读性。