C# 使用try的当前上下文中不存在流
我试图从服务器上读取一些数据,用于内置的更新函数,但遇到编译时错误。我有什么办法可以绕开这件事吗?我需要这个来检查用户是否有一个工作的互联网连接,如果没有跳过更新检查。(除非.Net 4.5中有更可靠的方法)C# 使用try的当前上下文中不存在流,c#,.net,webclient,filestream,C#,.net,Webclient,Filestream,我试图从服务器上读取一些数据,用于内置的更新函数,但遇到编译时错误。我有什么办法可以绕开这件事吗?我需要这个来检查用户是否有一个工作的互联网连接,如果没有跳过更新检查。(除非.Net 4.5中有更可靠的方法) WebClient=newWebClient(); 尝试 { Stream=client.OpenRead(“http://repo.itechy21.com/updatematerial.txt"); } 捕获(例外情况除外) {MessageBox.Show(例如Message);
WebClient=newWebClient();
尝试
{
Stream=client.OpenRead(“http://repo.itechy21.com/updatematerial.txt");
}
捕获(例外情况除外)
{MessageBox.Show(例如Message);}
StreamReader=新的StreamReader(流);// 只需在try
块之前声明Stream
变量。否则,其范围仅限于try
块本身。请记住,变量的作用域是声明它的代码块。只要看一下变量周围最内部的大括号和大括号,您就会立即知道引用该变量在哪里是合法的
Stream stream; // or Stream stream = null;
try
{
stream = client.OpenRead("http://repo.itechy21.com/updatematerial.txt");
}
// rest of code
您需要在try语句之外声明“Stream Stream”,以便在catch中使用它。Better declateStream-Stream=null代码>。在这种情况下,您可以在try..catch块之后检查流是否为null。你想知道为什么吗?iTechy,这个话题涉及到更多细节,以及要求对否决票发表评论的讨论。TL;DR-无研究显示=>反对票。感谢您在此基础上进行扩展:)
Stream stream; // or Stream stream = null;
try
{
stream = client.OpenRead("http://repo.itechy21.com/updatematerial.txt");
}
// rest of code