1
159
不,这不是一个坏习惯。放
|
2
17
不管怎样,最后都会被执行,所以没关系。 |
3
14
就个人而言,我会避免这种编码,因为我不想在finally语句之前看到返回语句。 我的头脑很简单,它对事物的处理相当线性。因此,当我遍历用于干运行的代码时,我会倾向于认为,一旦我能够到达返回语句,后面的所有内容都无关紧要,在这种情况下,这显然是非常错误的(不是它会影响返回语句,而是会有什么副作用)。 因此,我将对代码进行排列,以便返回语句始终出现在finally语句之后。 |
4
9
这可以回答你的问题 What really happens in a try { return x; } finally { x = null; } statement? 通过阅读这个问题,如果您认为finally语句可能引发异常,那么您可以在finally语句中使用另一个try-catch结构。编译器将确定何时返回值。 这就是说,不管怎样,重新构造代码可能会更好,这样以后就不会使您或其他不知道这一点的人感到困惑。 |
5
4
功能上没有区别。 但是,有一个原因不这样做。具有多个出口点的较长方法通常更难阅读和分析。但是,与catch和finally块相比,这个异议更多地与返回语句有关。 |
6
3
在您的示例中,无论哪种方式都是等价的,如果编译器生成相同的代码,我甚至不会感到惊讶。如果在finally块中发生异常,那么无论是将RETURN语句放在块中还是放在块之外,您都会遇到同样的问题。 真正的问题是在风格上哪一个最好。我喜欢编写我的方法,这样就只有一个返回语句,这样就更容易看到方法的流,这就意味着我也喜欢把返回语句放在最后,这样就很容易看到它是方法的结尾,这就是它返回的内容。 我认为,由于RETURN语句与最后一个语句放置得如此整齐,其他语句就不太可能出现并将多个RETURN语句散布到方法的其他部分。 |
Robert King · Unity C#语法问题-转换位置 1 年前 |
JBryanB · 如何从基本抽象类访问类属性 1 年前 |
law · 检查答案按钮的输入字符串格式不正确 2 年前 |
i_sniff_ket · 在unity之外使用unity类 2 年前 |