How do Methods Work?
Let’s write a method that adds twointeger values together and returnsthe result.
static int add(int n1, int n2){ int sum = n1 + n2; return sum;}
This specifies the return type of the method.That is, this method will return an integer.Methods can only return one thing.
static int add(int n1, int n2){ int sum = n1 + n2; return sum;}
This is the name of the method.
static int add(int n1, int n2){ int sum = n1 + n2; return sum;}
These are the method’s parameters. A method canhave any number of parameters, including none. TheParameters define the variables passed to the methodwhen it is invoked.
A complete program using the add( ) method
using System;
class Program{ static void Main() { int var1 = 8; int var2 = 5; int var3 = add(var1, var2); Console.WriteLine(var3); Console.ReadLine(); }
// the add method // purpose: adds two integers // parameters: the integers to add together // returns: the sum static int add(int n1, int n2) { int sum = n1 + n2; return sum; }}
A complete program using the add( ) method
It is common to put thecode for the method followingMain( )
using System;
class Program{ static void Main() { int var1 = 8; int var2 = 5; int var3 = add(var1, var2); Console.WriteLine(var3); Console.ReadLine(); }
// the add method // purpose: adds two integers // parameters: the integers to add together // returns: the sum static int add(int n1, int n2) { int sum = n1 + n2; return sum; }}
A complete program using the add( ) method
This is the line of code that actuallycalls, or invokes, the method.Two values are passed to the method.The method returns a value which isthen stored in var3.
using System;
class Program{ static void Main() { int var1 = 8; int var2 = 5; int var3 = add(var1, var2); Console.WriteLine(var3); Console.ReadLine(); }
// the add method // purpose: adds two integers // parameters: the integers to add together // returns: the sum static int add(int n1, int n2) { int sum = n1 + n2; return sum; }}
int var1 = 8;int var2 = 5;int var3 = add(var1, var2);
Looking at the method call in more detail …
The values of 8 and 5 get passed to the method..
var1
var25
8
add
Let’s Investigate what happens …
We will treat the method as a black box. It isimportant to note that we can’t see inside.
var3
var1
var25
8
add
Let’s Investigate what happens …
We know what a method does by reading it’s prologue.
var3
var1
var25
8
Make a copy of the variables. We don’t want theadd method to change the original variables.
add
var3
Let’s Investigate what happens …
var1
var25
8
Make a copy of the variables.
add
8var3
Let’s Investigate what happens …
var1
var25
8
Make a copy of the variables.
8
add
var3
Let’s Investigate what happens …
var1
var25
8
Make a copy of the variables.
8add
var35
Let’s Investigate what happens …
5
add
Pass the copies of the variables to the method
var1
var25
8
var3 8
Let’s Investigate what happens …
5
add
Pass the copies of the variables to the method
var1
var25
8
var3
Let’s Investigate what happens …
Inside of the Black Box
static int add(int n1, int n2){ int sum = n1 + n2; return sum;}
These are the method’sformal parameters.
Notice that when inside of the box,we can’t see out.
static int add(int n1, int n2){ int sum = n1 + n2; return sum;}
n1
n2
sum
These variables are local to themethod. They only exist insideof the box.
Inside of the Black Box
static int add(int n1, int n2){ int sum = n1 + n2; return sum;}
n1
n2
sum
5
Inside of the Black Box
Here comes the first value passed to the method.
Inside of the Black Box
static int add(int n1, int n2){ int sum = n1 + n2; return sum;}
n1
n2
sum
8
It gets stored in the local variable n1.
8
static int add(int n1, int n2){ int sum = n1 + n2; return sum;}
n1
n2
sum
5
8
Here comes the second value passed to the method.
Inside of the Black Box
static int add(int n1, int n2){ int sum = n1 + n2; return sum;}
n1
n2
sum
8
5
Inside of the Black Box
5
It gets stored in the local variable n2.
static int add(int n1, int n2){ int sum = n1 + n2; return sum;}
n1
n2
sum
8
5
13
Inside of the Black Box
Now the code of the method is executed.
static int add(int n1, int n2){ int sum = n1 + n2; return sum;}
n1
n2
sum
8
5
1313
Inside of the Black Box
We need to pass sum back to the point where themethod was called. So, we make a copy of sum.
static int add(int n1, int n2){ int sum = n1 + n2; return sum;}
n1
n2
sum
5
8
1313
Inside of the Black Box
… and pass it back to the caller.
static int add(int n1, int n2){ int sum = n1 + n2; return sum;}
n1
n2
sum
5
8
13
13
Inside of the Black Box
… and pass it back to the caller.
int var1 = 8;int var2 = 5;int var3 = add(var1, var2);
Looking at the method call in more detail …
The method returns the value of 13 right here.The value is assigned to var3.
add
Get the result
var1
var25
8
var3
Let’s Investigate what happens …
13
var1
var25
8
Store the returned value in the variable that it was assigned to.
add
var3
13
Let’s Investigate what happens …
var1
var25
8
add
var313
Let’s Investigate what happens …
We’re Done!