In-depth course in C#, created for a more detailed study of the C# language and consideration of additional programming topics, which were not covered in the other courses. Each course’s topic is accompanied by clear examples that will help you to quickly grasp the essence and learn how to use these constructions to create any games.

In the C# In-Depth Course, we’ll remind you what scripts, variables, constructs, and arrays are. We then move on to subroutines and cover methods, parameters, and overloads. Be sure to understand collections and look at how to use List, Queue, Stack, and Dictionary. We’ll explore classes and constructors and practice using them, and take a closer look at OOP (Generally-Oriented Programming). We’ll learn how to take full advantage of Unity’s features – learn about attributes and create our own editor in Unity. We’ll also take a deep dive into LINQ and such concepts as delegation and eventfulness. Finally, we’ll look at the SOLID (Single Responsibility Principle), which every developer should be familiar with.

Contents of the lesson

  1. Lesson – Introduction to the course
    1.1 About course
    1.2 Scripts
    1.3 Variables
    1.4 Constructions
    1.5 Arrays
  2. Lesson – Subprograms
    2.1 Methods
    2.2 Parameters
    2.3 Overloads
  3. Lesson – Collections
    3.1 List
    3.2 Queue and Stack
    3.3 Dictionary
  4. Lesson – Classes
    4.1 Classes
    4.2 Constructors
    4.3 Components
    4.3 Practice with classes and objects
  5. Lesson – Pillars of the PLO
    5.1 Pillars of the PLO
    5.2 Inheritance
    5.3 Encapsulation
    5.2 Virtual Members
  6. Lesson – Continuation of the OOP
    6.1 Interfaces
    6.2 Abstraction
    6.3 Statics
    6.4 structures
  7. Lesson – Practicing OOP
    7.1 Player Script
    7.2 Shooting Tank
    7.3 Missile script
    7.4 Close Combat Enemy Script
    7.5 Shooting Enemy Script
    7.6 In-Game stats script
    7.7 UI script
    7.8 Enemy Generation Script
  8. Lesson – Unity Capabilities
    8.1 Optimization. Pool objects
    8.2 Attributes
    8.3 Custom Editor
    8.4 Scriptable Objects
  9. Lesson – Delegation and Eventing
    9.1 Delegates
    9.2 Events
    9.3 Lambda Expressions
    9.4 LINQ
  10. Lesson – SOLID Principles
    10.1 What is SOLID
    10.2 Principle of sole responsibility
    10.3 The Open-Closed Principle
    10.4 The substitution principle of Barbara Liskow
    10.5 Interface separation principle
    10.6 Dependency inversion principle
  11. The lesson – Design patterns
    11.1 About Patterns
    11.2 Relationships
    11.3 Factory
    11.4 Strategy
    11.5 Observer
    11.6 state
    11.7 decorator
    11.8 visitor