370 likes | 473 Views
Module 5 : Programming with C#. Overview. Using Arrays Using Collections Using Interfaces Using Exception Handling Using Delegates and Events. Lesson: Using Arrays. What Is an Array? How to Create an Array How to Initialize and Access Array Members
E N D
Overview • Using Arrays • Using Collections • Using Interfaces • Using Exception Handling • Using Delegates and Events
Lesson: Using Arrays • What Is an Array? • How to Create an Array • How to Initialize and Access Array Members • How to Iterate Through an Array Using the foreach Statement • How to Use Arrays as Method Parameters • How to Index an Object
What Is an Array? • A data structure that contains a number of variables called elements of the array • All of the array elements must be of the same type • Arrays are zero indexed • Arrays are objects • Arrays can be: • Single-dimensional, an array with the rank of one • Multidimensional, an array with a rank greater than one • Jagged, an array whose elements are arrays • Array methods
How to Create an Array • Declare the array by adding a set of square brackets to end of the variable type of the individual elements • Instantiate to create • int[ ] numbers = new int[5]; • To create an array of type Object • object [ ] animals = new object [100]; int[] MyIntegerArray;
How to Initialize and Access Array Members • Initializing an array • Accessing array members int[] numbers = {10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0}; numbers[4] = 5; string[] animal = {"Mouse", "Cat", "Lion"}; animal[1]= "Elephant"; string someAnimal = animal[2];
How to Iterate Through an Array Using the foreach Statement • Using foreach statement repeats the embedded statement(s) for each element in the array int[] numbers = {4, 5, 6, 1, 2, 3, -2, -1, 0}; foreach (int i in numbers) { Console.WriteLine(i); }
How to Use Arrays as Method Parameters • Pass an array to a method • Use the params keyword to pass a variable number of arguments to a method public int Sum(params int[] list) { int total = 0; foreach ( int i in list ) { total += i; } return total; } ... // pe is the object providing Sum() ... int value = pe.Sum( 1, 3, 5, 7, 9, 11 );
How to Index an Object • Use this keyword, and get and set accessors public class Zoo { private Animal[] theAnimals; public Animal this[int i] { get { return theAnimals[i]; } set { theAnimals[i] = value; } } }
10 min Practice: Using a foreach Statement with an Array Hands-on Practice • In this practice, you will create an array, populate it, and use the foreach statement to print out the values in the array
10 min Practice (optional): Using an Indexer Hands-on Practice • In this practice, you will write an indexer for the Zoo class
Lesson: Using Collections • What Are Lists, Queues, Stacks, and Hash Tables? • How to Use the ArrayList Class • How to Use Queues and Stacks • How to Use Hash Tables
What Are Lists, Queues, Stacks, and Hash Tables? Lists, queues, stacks, and hash tables are common ways to manage data in an application • List: A collection that allows you access by index Example: An array is a list; an ArrayList is a list • Queue: First-in, first-out collection of objects Example: Waiting in line at a ticket office • Stack: Last-in-first-out collection of objects Example: A pile of plates • Hash table: Represents a collection of associated keys and values organized around the hash code of the key Example: A dictionary
How to Use the ArrayList Class • ArrayList does not have a fixed size; it grows as needed • Use Add(object) to add an object to the end of the ArrayList • Use [] to access elements in the ArrayList • Use TrimToSize() to reduce the size to fit the number of elements in the ArrayList • Use Clear to remove all the elements • Can set the capacity explicitly
How to Use Queues and Stacks • Queues: first-in, first-out • Enqueue places objects in the queue • Dequeue removes objects from the queue • Stacks: last-in, first-out • Push places objects on the stack • Pop removes objects from the stack • Count gets the number of objects contained in a stack or queue
How to Use Hash Tables • A hash table is a data structure that associates a key with an object, for rapid retrieval Key Object Book techBook = new Book("Inside C#", 0735612889); // ... public Hashtable bookList; // bookList.Add(0735612889, techBook); // Book b = (Book) bookList[0735612889]; // b’s title is "Inside C#"
10 min Practice: Creating and Using Collections Hands-on Practice • In this practice, you will use the ArrayList class
Lesson: Using Interfaces • What Is an Interface? • How to Use an Interface • How to Work with Objects That Implement Interfaces • How to Inherit Multiple Interfaces • Interfaces and the .NET Framework
What Is an Interface? An interface: • Is a reference type that defines a contract • Specifies the members that must be supplied by classes or interfaces that implement the interface • Can contain methods, properties, indexers, events • Does not provide implementations for the members • Can inherit from zero or more interfaces
How to Use an Interface • An interface defines the same functionality and behavior to unrelated classes • Declare an interface • Implement an interface interface ICarnivore { bool IsHungry { get; } Animal Hunt(); void Eat(Animal victim); }
How to Work with Objects That Implement Interfaces • is • as if ( anAnimal is ICarnivore ) { ICarnivore meatEater = (ICarnivore) anAnimal; Animal prey = meatEater.Hunt(); meatEater.Eat( prey ); } ICarnivore meatEater = anAnimal as ICarnivore; if ( meatEater != null ) { Animal prey = meatEater.Hunt(); meatEater.Eat( prey ); } // is and as with an object if ( prey is Antelope ) { ... }
How to Inherit Multiple Interfaces class Chimpanzee: Animal, ICarnivore, IHerbivore { … } • Interfaces should describe a type of behavior • Examples: • Lion is-a-kind-of Animal; Lion has Carnivore behavior • Shark is-a-kind-of Animal; has Carnivore behavior • Derive Lion and Shark from abstract class Animal • Implement Carnivore behavior in an Interface
Interfaces and the .NET Framework • Allows you to make your objects behave like .NET Framework objects • Example: Interfaces used by Collection classes • ICollection, IComparer, IDictionary, IDictionary Enumerator, IEnumerable, IEnumerator, IHashCodeProvider, IList public class Zoo : IEnumerable { . . . public IEnumerator GetEnumerator() { return (IEnumerator)new ZooEnumerator( this ); }
10 min Practice: Using Interfaces Hands-on Practice • In this practice, you will implement the ICloneable interface
Lesson: Using Exception Handling • How to Use Exception Handling • How to Throw Exceptions
How to Use Exception Handling • Exception handling syntax try { // suspect code } catch { // handle exceptions } finally { // always do this }
How to Throw Exceptions • Throw keyword • Exception handling strategies • Exception types • The predefined common language runtime exception classes • Example: ArithmeticException, FileNotFoundException • User-defined exceptions
10 min Practice: Using Exception Handling Hands-on Practice • In this practice, you will use throw and catch an exception
Lesson: Using Delegates and Events • How to Create a Delegate • What Is an Event? • How to Write an Event Handler
Medical Center ScheduleApointment Calls ProcessNextPatient Delegate AppointmentType Lion CheckClaws Antelope CheckHooves How to Create a Delegate Zoo Keeper 1 Schedule lion CheckClaws Zoo Keeper 2 Schedule antelope CheckHooves
Mouse and keyboard MouseDown, MouseUp, MouseMove, MouseEnter, MouseLeave, MouseHover KeyPress, KeyDown, KeyUp • Property FontChanged SizeChanged CursorChanged What Is an Event?
How to Write an Event Handler • Declare events using delegates • System.EventHandler is declared as a delegate • Event handler is called when the event occurs • EventArgs parameter contains the event data button1.Click += new System.EventHandler(button1_Click); private void button1_Click(object sender, System.EventArgs e) { MessageBox.Show( e.ToString() ); }
10 min Practice: Declaring and Calling a Delegate Hands-on Practice • In this practice, you will create and use a delegate
Review • Using Arrays • Using Collections • Using Interfaces • Using Exception Handling • Using Delegates and Events
Lab 5.1: Using Arrays • Exercise 1: Sorting Numbers in an Array 30 minutes
1 hour Lab 5.2 (optional): Using Indexers and Interfaces • Exercise 1: Writing the Check Pick-up Application • Exercise 2: Using Interfaces
1 hour Lab 5.3 (optional): Using Delegates and Events • Exercise 1: Working with Events and Delegates