在C++中,如果我在调用方法之后声明它,我就不能使用它.
此订单是否与Java或C#等其他语言相关?
方法的声明顺序在C#或Java中永远不重要.同样,在它使用的变量之前或之后声明方法也无关紧要.
变量的声明顺序可能很重要,但是,当它们被初始化时,它们取决于另一个变量.例如(C#):
using System; class Test { static int x = 5; static int y = x; static void Main() { // Prints x=5 y=5 Console.WriteLine("x={0} y={1}", x, y); } }
但:
using System; class Test { static int y = x; static int x = 5; static void Main() { // Prints x=5 y=0 Console.WriteLine("x={0} y={1}", x, y); } }
Java的防止了这种确切的情况,但它很容易模仿:
public class Test { static int y = getInitialValue(); static int x = 5; public static void main(String args[]) { System.out.println("x=" + x + " y=" + y); } static int getInitialValue() { return x; } }
在C#中,当涉及到部分类时,事情变得更加混乱.初始化在C#中以文本顺序发生,但是当您有多个文件对同一个类做出贡献时,该顺序未完全定义.
不用说,尽可能避免这种情况!
不.