提问人:mamba mentality 提问时间:10/22/2023 最后编辑:mamba mentality 更新时间:10/22/2023 访问量:68
如何在 try catch 之外和每个循环中声明变量
How to declare a variable outside of a try catch and for each loop
问:
异常处理我是一个为我的 c# 类编写代码的新手。我们必须显示异常处理,但我在每个循环中的“lines”变量上遇到了一个红色的波浪线,因为我在我声明行的方法周围放置了一个 try catch。我该如何解决这个问题?提前致谢!
我尝试在其他论坛上寻找类似的问题,但没有运气。
答:
0赞
Andrei Golubkov
10/22/2023
#1
您可以在 block 之前声明变量,如下所示:lines
try
string[] lines = new string[0];
try {
lines = File.ReadAllText(txtFile);
}
catch (Exception e) {
//....
}
//...
foreach (var line in lines) {
//...
}
评论
0赞
mamba mentality
10/22/2023
这是有道理的,谢谢!
0赞
Auditive
10/22/2023
首选使用 或 代替实例化空数组/集合变量。Array.Empty<T>
Enumerable.Empty<T>
new T[0]
0赞
Flydog57
10/22/2023
不!声明变量时,无需对其进行初始化。通过初始化它,您只是创建了需要清理的垃圾,并防止编译器在使用之前没有正确地使它无效时警告您。只需使用 .如果收到可为 null 的警告,或者string[] lines;
string[]? lines;
string[]! lines;
0赞
Auditive
10/22/2023
@Flydog57,OP 在块后有循环。单位化变量导致错误foreach
lines
try-catch
lines
0赞
Andrei Golubkov
10/22/2023
我已经将我对它的评论添加到@Flydog57回复中,但看起来他删除了它,并且不喜欢我的回答。所以,我的建议是:“附加示例不包含 catch 块的抛出/返回。当我们遇到异常时,我们将记录它并继续执行。这种情况有两种解决方案:如果我们想继续 - 我们必须将 var 初始化为空数组。但是,我们可以跳过初始化,但我们需要在块中停止执行”lines
catch
评论