Covariant & Contravariant Type Parameters C# with Example



Covariant & Contravariant Type Parameters C# with Example

Func also supports Covariant & Contravariant 
// Simple hierarchy of classes. 
public class Person { } 
public class Employee : Person { } 
class Program 
{ 
static Employee FindByTitle(String title) 
{ 
// This is a stub for a method that returns 
// an employee that has the specified title. 
return new Employee(); 
} 
static void Test() 
{ 
// Create an instance of the delegate without using variance. 
Func findEmployee = FindByTitle; 
 

// The delegate expects a method to return Person, 
// but you can assign it a method that returns Employee. 
Func findPerson = FindByTitle; 
// You can also assign a delegate 
// that returns a more derived type 
// to a delegate that returns a less derived type. 
findPerson = findEmployee; 
} 
} 
 

values 

0 Comment's

Comment Form