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