我是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#。对此有任何建议将非常感激。
答案 0 :(得分:3)
F#中的use
关键字与C#using
的机制略有不同。一个主要的区别是在C#中你用花括号明确指定using
的范围,但F#' s use
影响整个"当前块" (let
- 绑定或成员),从use
到结尾。因此,您不必明确地“嵌套”#34; (即缩进)"在"下的代码use
。继续照常写作:
use response = s3Client.GetObject(req)
use reader = new StreamReader(response.ResponseStream)
let urlCheck = reader.ReadToEnd()
Console.WriteLine(urlCheck)