在 F# 中编写此 AWS C# 代码片段

Writing this AWS C# code snippet in F#

我是 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)

但它根本不起作用。有人可以帮忙吗?

编辑
我使用此 link: f# keyword use and using 作为上述解决方案的模板,但它没有用。

我得到的错误是 "reader is not a function and cannot be applied".

此外,我知道我可以将它留在 C# 中,但我想看看是否可以将它移植到 F#。对此有任何建议将不胜感激。

F# 中的 use 关键字与 C# 中的 using 的机制略有不同。一个主要区别是,在 C# 中,您使用大括号显式指定 using 的范围,但 F# 的 use 影响整个 "current block"(let-绑定或成员) , 从 use 到结束。这样您就不必显式 "nest"(即缩进)"under" 和 use 的代码。像往常一样继续写作:

use response = s3Client.GetObject(req)
use reader = new StreamReader(response.ResponseStream)
let urlCheck = reader.ReadToEnd()
Console.WriteLine(urlCheck)