プログラマーはプログラミングに関する理論的な知識や概念を取得するのではなく、実際のシナリオを実装することでより多くを学ぶので、OOP学習者の彼らは設計スキルを練習し、c#を使用してこれらのシナリオを実装できますか?
たとえば、どのシナリオで抽象クラス、インターフェイス、仮想オーバーライドなどを使用する必要があるかなどの問題について、設計上の決定を行うのに役立ちます。
または https://stackoverflow.com/questions/277106/looking-for-some-interesting-c-sharp-programming-problems
これらの両方には、正しい方向にあなたを向けるべき多くの良い答えがあります。 Googleをすばやく検索すると、次のようになりました: http://sixrevisions.com/resources/10-puzzle-websites-to-sharpen-your-programming-skills/
「現実世界のシナリオ」はややあいまいですが、いじくり回しプログラムとプロフェッショナルプログラムの主な違いは、セキュリティ、スケーラビリティ、互換性、リソース管理、パフォーマンスなどに、より多くの考慮が払われることです。
構文や概念に重点を置き、参照またはガイドとして使用することに慣れているWebサイト/ブック/クラスを見つけることを検討することをお勧めします。
そして、他の人がすでに述べたように、プログラミングを学ぶ最良の方法は、あなたが興味を持っている何かをするプログラムを書き始めることです。シンプルなゲーム(テトリス、ヘビ)、ツール(電卓、ファイルブラウザー)、またはオープンソースのコミュニティプロジェクトは、アイデアを得るのに最適な場所です。
OOPに興味がある場合は、次のツールを使用することをお勧めします。
ジャッキー・バーカーは、この主題について素晴らしい本を何冊か書いています。それらの1つは C#の始まり:概念からコードへ
この本は、OOPに不慣れな学生や初心者プログラマー向けに、ケーススタディを詳細に説明しています。