1 / 21

4. Statements and Methods

4. Statements and Methods. Objectives. “With regards to programming statements and methods, C# offers what you would come to expect from a modern OOPL…” Statements Methods. Part 1. Statements…. Statements in C#. C# supports the standard assortment… Assignment

tender
Download Presentation

4. Statements and Methods

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 4. Statements and Methods

  2. Objectives “With regards to programming statements and methods, C# offers what you would come to expect from a modern OOPL…” • Statements • Methods

  3. Part 1 • Statements…

  4. Statements in C# • C# supports the standard assortment… • Assignment • Subroutine and function call • Conditional • if, switch • Iteration • for, while, do-while • Control Flow • return, break, continue, goto

  5. Examples x = obj.foo(); if (x > 0 && x < 10) count++; else if (x == -1) ... else { ... } while (x > 0) { ... x--; } for (int k = 0; k < 10; k++) { ... }

  6. Other statements • C# contains a couple surprises… • data structure iteration via foreach • namespace importing via using

  7. foreach • Specialized foreach loop provided for collections like array • reduces risk of indexing error • provides read only access int[] data = { 1, 2, 3, 4, 5 }; int sum = 0; foreach (int xin data) { sum += x; } foreach type value collection

  8. using • using directive allows unqualified access to namespace • a convenience mechanism only… • still must ref underlying assembly namespace Workshop { public class Customer { . . . } public class Product { . . . } } // before Workshop.Customer c; c = new Workshop.Customer("joe hummel", 94652); // after using Workshop; Customer c; c = new Customer("joe hummel", 94652);

  9. Complete example • using directive(s) specified at top of file namespace Workshop { public class Customer { . . . } public class Product { . . . } } /* main.cs */ using System; using Workshop; public class App { public static void Main() { Customer c; c = new Customer("joe hummel", 94652); Console.WriteLine( c.ToString() ); } }

  10. Part 2 • Methods…

  11. Types of methods • Classes contain 2 types of methods: • those with no return value (void) • those with a return value (int, string, etc.) • Methods may be: • instance • static • Instance methods require an object to call • Static methods are global and thus require only class name

  12. Example • Array class in FCL • fully-qualified name is System.Array namespace System { public class Array { public int GetLength(int dimension) { ... } public static void Sort(Array a) { ... } . . . } } instance method(absence of static) static method(presence of static)

  13. Calling methods • Here's an example of calling into the Array class: /* main.cs */ using System; public class App { public static void Main() { int[] data = { 11, 7, 38, 55, 3 }; Array.Sort(data); for (int i=0; i<data.GetLength(0); i++) Console.WriteLine(i + ": " + data[i]); } }

  14. Other useful static methods • A program to add 2 integers and output the sum: using System; public class Calculator { public static void Main() { string input, output; int a, b, sum; Console.Write("Enter first integer: "); input = Console.ReadLine(); a = Convert.ToInt32(input); Console.Write("Enter second integer: "); input = Console.ReadLine(); b = Convert.ToInt32(input); sum = a + b; output = String.Format("{0} + {1} = {2}", a, b, sum); Console.WriteLine(output); } }

  15. Parameter passing • C# offers three options: • pass-by-value (default) • pass-by-reference • pass-by-result ("copy-out")

  16. Pass-by-value • Pass by value is default parameter passing mechanism • data copied into method • any changes to parameter inside method affect local copy only void F(int x) { x = 0; } value parameter int y = 9; F(y); y unchanged

  17. Pass-by-reference • ref parameter passes data in and out • use keyword ref in definition and call • must use variable in call • must initialize passed variable before call ref parameter, initially 9 void G(ref int x) { x += 1; } int y = 9; G(ref y); y set to 10

  18. Pass-by-result ("copy-out") • out parameter returns data through parameter • use keyword out in both definition and call • must use variable in call • must assign to parameter inside method or compiler error void H(out int x) { x = 0; } out parameter assignment required int y; H(out y); y set to 0

  19. Summary • Standard statements, a few non-standard ones • assignment, if, for, while, foreach, using • Two types of methods • instance methods require an object to call • static methods are global and thus require only class name

  20. References • Books: • I. Pohl, "C# by Dissection" • S. Lippman, "C# Primer" • J. Mayo, "C# Unleashed"

  21. Lab? • Work on lab #2, "Types, Stmts and Methods"…

More Related