Generics In and Out
Upcoming SlideShare
Loading in...5
×
 

Generics In and Out

on

  • 696 views

 

Statistics

Views

Total Views
696
Views on SlideShare
363
Embed Views
333

Actions

Likes
1
Downloads
11
Comments
0

26 Embeds 333

http://jaliyaudagedara.blogspot.com 168
http://www.jaliyaudagedara.blogspot.com 76
http://jaliyaudagedara.blogspot.in 28
http://jaliyaudagedara.blogspot.ru 10
http://jaliyaudagedara.blogspot.ca 9
http://programing-c.meximas.com 6
http://jaliyaudagedara.blogspot.co.uk 5
http://jaliyaudagedara.blogspot.de 4
http://www.jaliyaudagedara.blogspot.in 3
http://jaliyaudagedara.blogspot.mx 3
http://jaliyaudagedara.blogspot.sg 2
http://www.jaliyaudagedara.blogspot.de 2
http://jaliyaudagedara.blogspot.co.il 2
https://www.google.com.sa 2
http://jaliyaudagedara.blogspot.ae 2
http://jaliyaudagedara.blogspot.com.au 1
http://jaliyaudagedara.blogspot.pt 1
http://www.jaliyaudagedara.blogspot.co.nz 1
http://jaliyaudagedara.blogspot.fr 1
http://jaliyaudagedara.blogspot.com.br 1
http://jaliyaudagedara.blogspot.kr 1
http://jaliyaudagedara.blogspot.com.ar 1
http://jaliyaudagedara.blogspot.no 1
http://jaliyaudagedara.blogspot.tw 1
http://www.jaliyaudagedara.blogspot.hu 1
http://jaliyaudagedara.blogspot.com.tr 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Generics In and Out Generics In and Out Presentation Transcript

  • Generics In and Out Jaliya Udagedara
  • What are we going to discuss today? • Non-Generic Collections • Demo 1 : Non-Generic Collections • Generic Collections • Generic List<T> Class • Generic IEnumerable<T> Interface • Constraints on Type Parameter (T) • Demo 2 : Generic Collections (List<T>) • Demo 3 : Creating Custom Generic Class and more. • Advantages of Generics • Some Recommandations
  • Collections ICollection IList IDictionary
  • Non-Generic Collections • System.Collections (Not included in the default C# template) • Examples • ArrayList • HashTable etc. • Store objects • Add anything. • Typecast on removal.
  • Demo 1 ArrayList and HashTable
  • Generic Collections • System.Collections.Generic (Included in the default C# template) • Examples • List<T> • Dictionary<TKey, TValue> etc. • Store objects • Add item of specific type. • No need to box/unbox.
  • Generic Collections contd. • Generic Classes • Generic Interfaces • Generic Methods • Generic Delegates
  • The Generic List Class (List<T>) public class List<T> : IList<T>, ICollection<T>, IList, ICollection, IReadOnlyList<T>, IReadOnlyCollection<T>, IEnumerable<T>, IEnumerable • List<T> is the generic List class • T represents the type parameter to be supplied in declarations. • Provides traditional list operations • Insert/Delete
  • List<T> Methods • Add (T item) • Add item at end of list • Insert (int index, T item) • Insert item at a specific position • Remove (T item) • Remove first occurrence of item • RemoveAt (int index) • Remove item at specified position
  • List<T> Methods contd. • Clear() • Removes all items from the list • bool Contains(T item) • Determines if item is in the list • int IndexOf(T item) • Returns index of item, or -1 if not in list. • Sort() • Array.Sort method • Insertion Sort / Heap Sort or Quick Sort • …more
  • The Generic IEnumerable<T> Interface public interface IEnumerable<out T> : IEnumerable • Exposes the enumerator. • Simple iteration over a collection of a specified type. • List<T> implements IEnumerable<T> • Methods • GetEnumerator() • A lot of extension methods (visit MSDN)
  • Generic Delegates • What is a Delegate? • Function Pointer in C++. static void Method1(string s) { // body } static void Method2(int i) { // body } delegate void MyGenericDelegate<T>(T data);
  • Constraints on Type Parameter (T) • where T : struct • T must be a value type • where T : class • T must be reference type • where T : <base class> • T must be deriving from base class • where T : <interface> • T must be implementing the interface • where T : new() • T must have parameter less constructor
  • Demo 2 List<T>
  • Demo 3 Custom Generic Class, Generic Methods, Type Constraints etc.
  • So what’s the advantage? Reusable Efficient Type Safe (in compile time too)
  • Recommendations • For all the applications which targets .NET 2.0 and above use new generic collection classes instead of the older non-generic counterparts. • For most scenarios that require collection classes, the recommended approach is to use the ones provided in the .NET Framework class library. • If the items in the collection are being added/removed from different threads, use collections in the System.Collections.Concurrent which is introduced with .NET Framework 4.
  • Thank You! http://www.jaliyaudagedara.blogspot.com/