Ironically, the best books I learned object oriented programming are not directly about the low level nitty gritty of writing code, but rather the concepts that the code ends up implementing. So to that end I recommend Alan Shalloway's "Design Patterns Explained" which fortunately is in C#, and Martin Fowler's "Refactoring" which has Java.
If you are a beginning programmer just ramping up on the C# language, and at the same time trying to learn good object oriented programming habits, there is an old book about game programming in C# targeting the Managed DirectX (MDX). I thought that the author did a a great job of helping a student go up 4 different learning curves simultaneously: C#, DirectX, object oriented design, and game programming. If/when my brain eventually fetches the book title and author, I'll reply to this thread.