CIS162AD C - PowerPoint PPT Presentation

1 / 22
About This Presentation
Title:

CIS162AD C

Description:

A design method where the major task to be accomplished is divided into subtasks. ... A method is a collection of statements that are grouped together to perform a ... – PowerPoint PPT presentation

Number of Views:33
Avg rating:3.0/5.0
Slides: 23
Provided by: JuanMa4
Category:
Tags: cis162ad

less

Transcript and Presenter's Notes

Title: CIS162AD C


1
CIS162AD C
  • Call-by-Reference Methods
  • 06_methods_by_ref.ppt

2
Overview Of Topics
  • Review Top-Down Design
  • Calling Event Methods
  • Review pass-by-value Arguments
  • Introduce Void Methods
  • Introduce pass-by-reference Arguments

3
Top-Down Design
  • A design method where the major task to be
    accomplished is divided into subtasks.
  • Each subtask should perform a single well-defined
    task.
  • Each subtask may produce some result.
  • Treat them as small programs.Input -gt Process -gt
    Output

4
Top-Down Design Implementation
  • Top-Down design is implemented using methods.
  • A method is a collection of statements that are
    grouped together to perform a specific operation.
  • Methods have inputs called arguments.
  • Methods can only return one value through the
    return statement.
  • A method that will not return a value should have
    its return type defined as void.
  • Methods can return more than one value through
    call-by-reference arguments.

5
Calling Event Methods
  • One of the reasons to breakup programs into small
    methods is so that code does not duplicated. If
    there is a method that does what we need to do,
    we just call it.
  • For example, we can add a menu option to perform
    the same calculations defined for a button (CS7).
  • Instead of duplicating the code, we can call the
    button method which has the code defined and
    tested from the menu method. Be sure to pass the
    required arguments. private void
    mnuEditCalculate_Click (object sender,
    System.EventArgs e) btnCalculate_Click(sender,
    e)

6
Local Variables
  • Variables are local to the method in which they
    are defined.
  • Variables defined in a particular method are
    assigned their own memory and can only be
    referenced in that method.
  • Variables defined in calcExtendedPrice( ) are
    assigned their own memory and can only be
    referenced in calcExtendedPrice( ).
  • Different methods cannot see or reference each
    others variables.
  • They have separate memory allocations even though
    the variable names may be the same.

7
Pass-by-value Reviewed
  • Methods with pass-by-value arguments will be
    passing the values of the arguments into the
    methods local variables.
  • The method cannot change the values stored in the
    calling method.
  • Two different memory locations are used for each
    variable.
  • One in the calling method and one in the called
    method.

8
Pass-by-value - Example
  • private void btnCalculate_Click() int
    intQty decimal decPrice, decExtendedPrice
    intQty int.Parse(txtQuantity.Text) decPrice
    decimal.Parse(txtPrice.Text) decExtendedPrice
    calcExtendedPrice(intQty, decPrice)
  • private decimal calcExtendedPrice(int intQty,
    decimal decPrice) decimal decExtended decExt
    ended intQty decPrice return decExtended

9
Values are Passed between Methods
10
Methods and Pass-by-Value
  • Values of the arguments are passed to the
    methods local variables.
  • Many values can be passed to methods, but only
    one value can be returned.
  • Enter void and pass-by-reference methods

11
Void Methods
  • No value returned through return statement.
  • Return statement is optional.
  • Defined the same way as call-by-value, but
    return type is void.private void
    btnExit_Click (object sender, System.EventArgs
    e) this.Close()

12
Calling Void Methods
  • A method that returns a value needs a variable to
    the left of the equal sign.decExtendedPrice
    calcExtendedPrice(intQty, decPrice)
  • A call to a void method does not need a variable
    and equal sign on the left.calcExtendedPrice(int
    Qty, decPrice, out decExtendedPrice)

13
Pass-by-Reference
  • Addresses of the arguments are passed to the
    methods local variables.
  • Many values can be passed to the methods, and
    many values can be returned.
  • Use the keyword ref or out to make the argument
    pass-by-reference.
  • If you leave ref or out off, the default is
    pass-by-value.

14
ref or out
  • ref is used for a variable that will be
    initialized before the method call.
  • out is used for a variable that might not be
    initialized before the method call, but the
    variable will initialized within the called
    method.

15
Pass-by-reference Example
  • private void btnCalculate_Click() int
    intQty decimal decPrice, decExtendedPrice
    intQty int.Parse(txtQuantity.Text) decPrice
    decimal.Parse(txtPrice.Text) calcExtendedPrice
    (intQty, decPrice, out decExtendedPrice)
  • private void calcExtendedPrice(int intQty,
    decimal decPrice, out decimal
    decExtended) decExtended intQty
    decPrice return

16
Declare Variables and Get Values
17
calcExtendedPrice(intQty, decPrice, out
decExtendedPrice) pass-by-reference address of
decExtendedPrice is sent
18
Method Uses Local Names of Arguments
  • private void btnCalculate_Click() int
    intQty decimal decPrice, decExtendedPrice
    intQty int.Parse(txtQuantity.Text) decPrice
    decimal.Parse(txtPrice.Text) calcExtendedPrice
    (intQty, decPrice, out decExtendedPrice)
  • private void calcExtendedPrice(int intQty,
    decimal decPrice, out decimal
    decExtended) decExtended intQty
    decPrice return

19
Perform Calculations decExtended intQty
decPrice
Value is stored at memory location provided
through argument.
20
Returning Multiple Values
  • Addresses of the arguments are passed to the
    methods local variables instead of the values
    stored in the arguments.
  • The called method can then modify memory
    locations assigned to the calling method.
  • When it does modify its memory location, it can
    be considered to have returned a value.
  • Code many pass-by-reference (ref or out)
    arguments to return more than one value.

21
Summary of Arguments
  • Arguments can be a mixture of pass-by-value and
    pass-by reference.
  • If a method should NOT change the value, send it
    as a pass-by-value.
  • If values are being returned through the
    arguments, then make the method a void method.

22
Summary
  • Pass-by-value Reviewed
  • Void Methods
  • Pass-by-reference
Write a Comment
User Comments (0)
About PowerShow.com