CHAPTER 1 - Introduction to X++
CHAPTER 2 - X++ Control Statements
CHAPTER 3 - Objects and Classes
CHAPTER 4: Accessing the Database
CHAPTER 5: Exception Handling
CHAPTER 6: Security for Developers
Lesson 6 – Scoping and Parameters in X++
Scoping and Parameters in X++:
The scope rules in X++ state that all methods have their own scope. To use data from one scope in a different scope, you have to transfer the data from one scope into the other scope by using parameters.
A method can take one or more parameters. Within the scope of the method, these parameters are treated like local variables and are initialized with the value from the parameter in the method-call. The following table shows an example.
Here, a class called Parameter is declared. The class has a method (methodQ), which takes two parameters: an integer and a real. Four variables are visible within the scope of methodQ: aval, bval, a, and b. The a and b variables are in the scope because they are defined in the class declaration for the class.
Assume that Parameter Object is an instance of the Parameter class. If methodQ is invoked on Parameter Object, ParameterObject.methodQ(1,2.0); aval is set to the value 1 within the method and the variable bval is set to 2.0 (it is a real) within the method. The two variables a and b in the ParameterObject are set to 1 and 2.0, respectively. You can pass the value of any expression as a parameter.
Parameters Are Passed by Value
All parameters are passed by value. You cannot change the value of the original variable—you can change only the local variable in the method, which is a copy of the original. The following table shows an example.
|Class declaration||Method methodA||Method methodB|
|class ByValue||void methodA(int i)||void methodB()|
|}||i = i + 1;||int i = 3;|
|print i;||print i;|