Download Object-oriented Programming in C# for C and Java programmers by Kurt Nørmark, This is a teaching material about object-oriented programming, illustrated with use of the programming language C#. it's assumed, as a prerequisite, that the readers have some information concerning imperative programming, ideally information concerning C. Download the pdf from below to explore all topics and start learning.

BOOK CONTENTS-

1. From structured programming to object-oriented programming
2. Towards Object-oriented Programming
3. Phenomena and Concepts
4. Towards Object-oriented Programs
5. The C# Language and System
6. C# in relation to C
7. C# in relation to Java
8. C# in relation to Visual Basic
9. C# Tools and IDEs
10. Classes: An Initial Example
11. Classes
12. Creating and Deleting Objects
13. Reference Types
14. Value Types
15. Organization of C# Programs
16. Patterns and Techniques
17. Accessing Data in Objects
18. Properties
19. Indexers
20. Methods
21. Overloaded Operators
22. Delegates
23. Events
24. Patterns and Techniques
25. Specialization of Classes
26. Extension of Classes
27. Inheritance in General
28. Inheritance in C#
29. Method Combination
30. Abstract Classes - Sealed Classes
31. Interfaces
32. Patterns and Techniques
33. Fundamental Questions about Exception Handling
34. Conventional Exception Handling
35. Object-oriented Exception Handling
36. Exceptions and Exception Handling in C#
37. Streams
38. Directories and Files
39. Serialization
40. Patterns and Techniques
41. Motivation for Generic Types
42. Generic Types
43. Generic Methods
44. Collections - History and Overview
45. Generic Collections in C#
46. Generic Dictionaries in C#
47. Non-generic Collections in C#
48. Patterns and Techniques
49. Correctness
50. Specification with preconditions and postconditions
51. Responsibilities and Contracts
52. Class Invariants