Search icon CANCEL
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Conferences
Free Learning
Arrow right icon
Arrow up icon
GO TO TOP
Programming in C#: Exam 70-483 (MCSD) Guide

You're reading from   Programming in C#: Exam 70-483 (MCSD) Guide Learn basic to advanced concepts of C#, including C# 8, to pass Microsoft MCSD 70-483 exam

Arrow left icon
Product type Paperback
Published in Oct 2019
Publisher Packt
ISBN-13 9781789536577
Length 444 pages
Edition 1st Edition
Languages
Arrow right icon
Authors (2):
Arrow left icon
SrinivasMadhav Gorthi SrinivasMadhav Gorthi
Author Profile Icon SrinivasMadhav Gorthi
SrinivasMadhav Gorthi
Simaranjit Singh Bhalla Simaranjit Singh Bhalla
Author Profile Icon Simaranjit Singh Bhalla
Simaranjit Singh Bhalla
Arrow right icon
View More author details
Toc

Table of Contents (22) Chapters Close

Preface 1. Learning the Basics of C# FREE CHAPTER 2. Understanding Classes, Structures, and Interfaces 3. Understanding Object-Oriented Programming 4. Implementing Program Flow 5. Creating and Implementing Events and Callbacks 6. Managing and Implementing Multithreading 7. Implementing Exception Handling 8. Creating and Using Types in C# 9. Managing the Object Life Cycle 10. Find, Execute, and Create Types at Runtime Using Reflection 11. Validating Application Input 12. Performing Symmetric and Asymmetric Encryption 13. Managing Assemblies and Debugging Applications 14. Performing I/O Operations 15. Using LINQ Queries 16. Serialization, Deserialization, and Collections 17. Mock Test 1
18. Mock Test 2
19. Mock Test 3
20. Assessments 21. Other Books You May Enjoy

Variance in delegates

C# supports variance in delegate types with matching method signatures. This feature was introduced in .NET Framework 3.5. This means delegates can now be assigned with matching signatures but also that methods can return derived types.

If a method has a return type derived from the one defined in a delegate, it is defined as covariance in delegates. Similarly, if a method has fewer derived parameter types than those defined in a delegate, it is defined as contravariance.

Let's look at an example to understand covariance. For the purpose of this example, we will create a few classes.

Here, we will create the ParentReturnClass, Child1ReturnClass, and Child2Return classes. Each of these has a string type property. Both child classes are inherited from ParentReturnClass:

internal class ParentReturnClass
{
public string Message { get; set; }
}

internal class...
lock icon The rest of the chapter is locked
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at €18.99/month. Cancel anytime