Enhance your programming skills by learning the intricacies of object oriented programming in C# 8
- Understand the four pillars of OOP; encapsulation, inheritance, abstraction and polymorphism
- Leverage the latest features of C# 8 including nullable reference types and Async Streams
- Explore various design patterns, principles, and best practices in OOP
Object-oriented programming (OOP) is a programming paradigm organized around objects rather than actions, and data rather than logic. With the latest release of C#, you can look forward to new additions that improve object-oriented programming.
This book will get you up to speed with OOP in C# in an engaging and interactive way. The book starts off by introducing you to C# language essentials and explaining OOP concepts through simple programs. You will then go on to learn how to use classes, interfacesm and properties to write pure OOP code in your applications. You will broaden your understanding of OOP further as you delve into some of the advanced features of the language, such as using events, delegates, and generics. Next, you will learn the secrets of writing good code by following design patterns and design principles. You'll also understand problem statements with their solutions and learn how to work with databases with the help of ADO.NET. Further on, you'll discover a chapter dedicated to the Git version control system. As you approach the conclusion, you'll be able to work through OOP-specific interview questions and understand how to tackle them.
By the end of this book, you will have a good understanding of OOP with C# and be able to take your skills to the next level.
What you will learn
- Master OOP paradigm fundamentals
- Explore various types of exceptions
- Utilize C# language constructs efficiently
- Solve complex design problems by understanding OOP
- Understand how to work with databases using ADO.NET
- Understand the power of generics in C#
- Get insights into the popular version control system, Git
- Learn how to model and design your software
Who this book is for
This book is designed for people who are new to object-oriented programming. Basic C# skills are assumed, however, prior knowledge of OOP in any other language is not required.
Table of Contents
- Title Page
- Copyright and Credits
- About Packt
Overview of C# as a Language
- Evolution of C#
- Architecture of .NET
Fundamentals and syntax of C# language
- Data types
- Nullable types
- Programming syntax - conditions
- Programming syntax - loops
- Writing your first C# program in a console application
- Visual Studio as an editor
- Writing your first program in Visual Studio
Hello OOP - Classes and Objects
- Classes in Object-oriented programming
- Objects in Object-oriented programming
- Variables in C#
- Methods in a class
- Characteristics of Object-oriented programming
- Implementation of OOP in C#
- Object Collaboration
- Why we need exception handling in programming
- Basics of exception handling
- Try and catch
- What happens if you don't handle exceptions?
- Multiple catch blocks
- Using the throw keyword
- What does the finally block do?
- Exception class
- User-defined exceptions
- Exception filter
- Exception handling best practices
- Events and Delegates
- Generics in C#
Modeling and Designing Software
- The importance of design diagrams
- Class diagrams
- Use case diagrams
- A sequence diagram
Visual Studio and Associated Tools
- Visual Studio project types and templates
- Visual Studio Editor and different windows
- Debugging windows
- Breakpoints, Call Stack Trace, and Watch
- Git in Visual Studio
- Refactoring and code-optimization techniques
Exploring ADO.NET with Examples
- The fundamentals of ADO.NET
- Connecting to various databases
- Working with DataReaders and DataAdapters
- Working with stored procedures
- Working with Entity Framework
- Transactions in SQL
- New Features in C# 8
Understanding Design Patterns and Principles
- Design Principles
- Creational design patterns
- Structural design patterns
- Behavioral design patterns
- The MVC pattern
Git - The Version Control System
- What is version control?
- How Git works
- Installing Git on Windows
- The basics of Git
- Branching in Git
Prepare Yourself - Interview and the Future
- What are the fundamental principles of object-oriented programming?
- What is inheritance?
- What is encapsulation?
- What is abstraction?
- What is polymorphism?
- What is an interface?
- What is an abstract class?
- What is a sealed class?
- What is a partial class?
- What are the differences between interfaces and abstract classes?
- What is the difference between method-overloading and method-overriding?
- What are access modifiers?
- What is boxing and unboxing?
- What are the differences between a struct and a class?
- What is an extension method in C# and how do we use it?
- What is managed and unmanaged code?
- What is a virtual method in C#?
- What do you understand by value types and reference types in C#.NET?
- What are design principles?
- What is the single responsibility principle?
- What is the Open/Closed principle?
- What is the Liskov substitution principle?
- What is the interface segregation principle?
- What is the dependency inversion principle?
- Interview and career tips
- Things to learn next
- Building the habit of reading
- Interview questions
- Other Books You May Enjoy
- Title: Hands-On Object-Oriented Programming with C#
- Release date: February 2019
- Publisher(s): Packt Publishing
- ISBN: 9781788296229