


Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
Parameter Passing, Methods Overloading, Local Variables, Summary, Design, Program Development Process, Implementation, Testing, Calendar, Requirement, Stepwise Refinement
Typology: Slides
1 / 4
This page cannot be seen from the preview
Don't miss anything!



1 // RefOutTest.cs 2 // Demonstrating ref and out parameters. 3 4 using System; 5 using System.Windows.Forms; 6 7 class RefOutTest 8 { 9 // x is passed as a ref int (original value will change) 10 static void SquareRef( ref int x ) 11 { 12 x = x * x; 13 } 14 15 // original value can be changed and initialized 16 static void SquareOut( out int x ) 17 { 18 x = 6; 19 x = x * x; 20 } 21 22 // x is passed by value (original value not changed) 23 static void Square( int x ) 24 { 25 x = x * x; 26 } 27 28 static void Main( string[] args ) 29 { 30 // create a new integer value, set it to 5 31 int y = 5; 32 int z; // declare z, but do not initialize it 33
34 // display original values of y and z 35 string output1 = "The value of y begins as " 36 + y + ", z begins uninitialized.\n\n\n"; 37 38 // values of y and z are passed by value 39 RefOutTest.SquareRef( ref y ); 40 RefOutTest.SquareOut( out z ); 41 42 // display values of y and z after modified by methods 43 // SquareRef and SquareOut 44 string output2 = "After calling SquareRef with y as an " + 45 "argument and SquareOut with z as an argument,\n" + 46 "the values of y and z are:\n\n" + 47 "y: " + y + "\nz: " + z + "\n\n\n"; 48 49 // values of y and z are passed by value 50 RefOutTest.Square( y ); 51 RefOutTest.Square( z ); 52 53 // values of y and z will be same as before because Square 54 // did not modify variables directly 55 string output3 = "After calling Square on both x and y, " + 56 "the values of y and z are:\n\n" + 57 "y: " + y + "\nz: " + z + "\n\n"; 58 59 MessageBox.Show( output1 + output2 + output3, 60 "Using ref and out Parameters", MessageBoxButtons.OK, 61 MessageBoxIcon.Information ); 62 63 } // end method Main 64 65 } // end class RefOutTest
class Test { const int NoOfTries = 3; // class scope static int Square ( int x ) // formal arg. { // NoOfTries and x in scope int square = x * x; // square local var. // NoOfTries, x and square in scope return square; } static int AskForAPositiveNumber ( int x ) { // NoOfTries and x in scope for ( int i = 0; i < NoOfTries; i++ ) { // NoOfTries, i, and x in scope string str = Console.ReadLine(); // NoOfTries, i, x, and str in scope int temp = Int32.Parse( str ); // NoOfTries, i, x, str and temp in scope if (temp > 0) return temp; } // now only x and NoOfTries in scope return 0; } // AskForPositiveNumber static void Main( string[] args ) {…} }