Variabler mellan privata metoder
Deklarera variabler mellan privata metoder.
Värdet som jag får ut i den första metoden ska redovisas i den andra metoden. Hur går jag tillväga?
Variabeln sum från SumNumbers ska deklareras i ShowResults.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | private void SumNumbers() { //Local variables int index; //counter variable int num = 0; //stores the value that the user gives int sum = 0; //result of the summation //A for-statement that iterates for (index = 0; index < numOfInput; index++) { Console.Write( " Write a value " + index + ": " ); num = int .Parse(Console.ReadLine()); sum += num; } } //SumNumbers private void ShowResults() { //Deklarera variabeln sum från SumNumbers Console.WriteLine( "---------------------" ); Console.WriteLine(); Console.Write( " The sum is: " + sum); } |
Svara
Sv: Variabler mellan privata metoder
Du kan returnera variabeln sum från den första metoden och anropa SumNumbers från den metod som du använder för att skriva ut värdet.
Så här:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | private int SumNumbers() { //Local variables int index; //counter variable int num = 0; //stores the value that the user gives int sum = 0; //result of the summation //A for-statement that iterates for (index = 0; index < numOfInput; index++) { Console.Write( " Write a value " + index + ": " ); num = int .Parse(Console.ReadLine()); sum += num; } return sum; } //SumNumbers private void ShowResults() { //Deklarera variabeln sum från SumNumbers int sum = SumNumbers(); Console.WriteLine( "---------------------" ); Console.WriteLine(); Console.Write( " The sum is: " + sum); } |
Svara
Sv: Variabler mellan privata metoder
Alternativt låter du variabeln ligga i objektet/klassen:
1 2 3 4 5 6 7 8 | class Summer { private sum; private void SumNumbers() { ... } private void ShowResults() { ... } } |
Svara
Sv: Variabler mellan privata metoder
Du behöver inte representera värdet genom en variabel mellan anropen ...
@Per: Varför en objektorienterad lösning på ett processorienterat problem?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | void main() { ShowResults(SumNumbers()); } private int SumNumbers() { //Local variables int index; //counter variable int num = 0; //stores the value that the user gives int sum = 0; //result of the summation //A for-statement that iterates for (index = 0; index < numOfInput; index++) { Console.Write( " Write a value " + index + ": " ); num = int .Parse(Console.ReadLine()); sum += num; } } //SumNumbers private void ShowResults( int sum) { Console.WriteLine( "---------------------" ); Console.WriteLine(); Console.Write( " The sum is: " + sum); } |
Svara