Если знаешь C# то считай что основы ООП ты уже знаешь.Основы ООП это инкапсуляция(сокрытие реализации за интерфейсом), полиморфизм( возможность использования нескольких реализаций функционала - например overload методов), наследование(думаю тут итак понятно). Это и есть основы ООП. Обычно в книгах по C# и по Java всюду пишут про эти понятия и показывается что и как выглядит в коде.
И ещё нужно уметь писать generic классы и методы - очень важно для C# и Java.