我有类似下面的代码...这里有人提到 WebClient、Stream 和 StreamReader 对象都可以从使用 block 中受益。两个简单的问题:
1:这个小片段在使用 block 时会是什么样子?我自己做研究没有问题,所以资源链接很好,但只看一个例子会更快更容易,我会从中理解它。
2:我想养成良好的编码标准的习惯,如果我了解一点使用 block 更好的原因会有帮助......只是为了让你不必担心关闭还是还有更多原因?谢谢!
WebClient client = new WebClient();
Stream stream = client.OpenRead(originGetterURL);
StreamReader reader = new StreamReader(stream);
JObject jObject = Newtonsoft.Json.Linq.JObject.Parse(reader.ReadLine());
string encryptionKey = (string)jObject["key"];
string originURL = (string)jObject["origin_url"];
stream.Close()
reader.Close()
最佳答案
using (var client = new WebClient())
using (var stream = client.OpenRead(originGetterURL))
using (var reader = new StreamReader(stream))
{
var jObject = Newtonsoft.Json.Linq.JObject.Parse(reader.ReadLine());
var encryptionKey = (string)jObject["key"];
var originURL = (string)jObject["origin_url"];
}
或者简单地说:
using (var client = new WebClient())
{
var json = client.DownloadString(originGetterURL);
var jObject = Newtonsoft.Json.Linq.JObject.Parse(json);
var encryptionKey = (string)jObject["key"];
var originURL = (string)jObject["origin_url"];
}
关于C# "using" block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4761198/