Generics

Page 1

Generics

Learn More @ http://www.learnnowonline.com Copyright Š by Application Developers Training Company


Objectives • Learn how to create generic classes and methods • Understand the advantages and benefits of generics • Explore the use of generics to sort and search in arrays • See how to use generic interfaces and constraints • Explore the generic List class Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company


Agenda • • • • •

Introducing Generics Generics and Arrays Generic Interfaces Generic Constraints Generics and Lists

Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company


Introducing Generics • You should strive for code reuse  Don’t write the same code repeatedly o

Put the code in a method and call the method repeatedly

 Don’t define the same methods repeatedly o

Put the methods in a class and use the class repeatedly

• Make your code as generic as possible  Don’t write ten methods to handle ten different types o

Write one method that can handle multiple types

 Prior to Visual Studio 2005 you would use overloaded methods or use objects Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company


Generic Methods • Create a generic method that will perform the same task for multiple data types • Use a type parameter to declare a generic class or method • Made possible with type parameters  Placeholder for a specific data type  Calling code decides, at runtime, what type it will pass to the method  Prohibits you from mixing data types Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company


Generic Classes • Generic class has similar behavior to a generic method, but at the class instance level • Each call to a method of the class must use the same data type • Declare the class with a type parameter but not the methods

Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company


Advantages of Generics • Type-safety  Compiler enforces the requirement that you use a specific data type

• Better performance  No converting from objects to specific types

• Less code  Write a generic method once and pass to it any data type

• More flexible code  Passing a different data type does not require new code Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company


Agenda • • • • •

Introducing Generics Generics and Arrays Generic Interfaces Generic Constraints Generics and Lists

Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company


Generics and Arrays • Arrays are a handy way to store a group of related items  Easily add or remove an item  Array class provides methods for sorting and searching

Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company


Sorting Arrays • You can easily sort an array of simple data types • By default, you can’t sort an array of class instances  To sort an array, items must all be of the same type, and that type must implement IComparable and provide a CompareTo method  If the type does not implement IComparable, or if an array contains multiple types, the sort fails at runtime Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company


Sorting with the IComparer Interface • You can pass to Array.Sort an instance of a class that implements IComparer • You need to provide a method named Compare that compares two instances of the same type

Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company


Sorting with Generic Comparisons • Create a method that compares  Accepts two parameters of the same type, matching the type of data stored in the array  Returns an integer value, representing the comparison of the two parameters

• Pass the address of the method to Array.Sort • No need to implement IComparer

Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company


Searching with Generic Predicates • Array.IndexOf returns an index of first occurrence of a value in an array  Works fine for simple data types but not for complex data types

• Create a method that defines a set of criteria and determines whether an object meets those criteria • Pass the address of the method to Array.FindIndex Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company


Agenda • • • • •

Introducing Generics Generics and Arrays Generic Interfaces Generic Constraints Generics and Lists

Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company


Generic Interfaces • Implement IComparable in your custom classes  You can sort the class using default Array.Sort

• Use the generic version of IComparable to avoid the boxing and unboxing issues

Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company


Agenda • • • • •

Introducing Generics Generics and Arrays Generic Interfaces Generic Constraints Generics and Lists

Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company


Generic Constraints • Use generic constraints to ensure that parameters meet conditions  e.g., can only pass to a method type that implements IComparable

Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company


Agenda • • • • •

Introducing Generics Generics and Arrays Generic Interfaces Generic Constraints Generics and Lists

Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company


Generics and Lists • Classes can account for one-to-many relationships  Customers have Orders

• Create an Orders property in Customer class and store instances of the Order class • Can use an ArrayList  ArrayList stores objects

• Use generic List class instead  Similar capabilities as ArrayList plus type-safety and better performance Learn More @ http://www.learnnowonline.com Copyright © by Application Developers Training Company


Learn More! • This is an excerpt from a larger course. Visit www.learnnowonline.com for the full details!

Learn More @ http://www.learnnowonline.com Copyright Š by Application Developers Training Company


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.