前回のエントリでは「新しい言語を勉強したって、前に使ってた言語と同じような書き方をしてたら意味がない」という話をしました。 そこでC#を題材にして、C#を本質からマスターできているかどうかを確認するためのチェックリストを作ってみました。 これらの質問に対してすべて自分の言葉で説明できるのであれば、あなたはきっとC#をC#らしく使えているはずです。 interfaceって何のためにある?どういうときに使う?それがあったら何が嬉しい? 抽象クラスや抽象メソッドって何のためにある?どういうときに使う?それがあったら何が嬉しい? virtualって何?なんでJavaにはvirtualがない? 名前空間って何?それがあったら何が嬉しい? クラスって何?自分で新しくクラスを作る場合の注意点は何?(オブジェクト指向設計的な観点から) クラスと構造体の違いって何?参照型と値型の違いって何? フィールドやメ