プログラミング経験者が雑にC#入門をするリンク集(2019年版)

すでにプログラミングに関する知識はあるけどC#の経験は浅い・無いといった人のために入門をしながら本記事を書いていきます。
リファクタリングするのはいいけどC#的文化とかベストプラクティス的なもの学んだ方がいいんじゃないの?と思ったので。
なお、JavaC++を経験している身で書いているのでその辺で知りえたところは省略しているかもしれません。
あと、途中まで書きながら思ったけどアレどこ行ったっけ?となったときに参照できるといいかも。

Microsoft Docsって充実しているのでは?

C# 関連のドキュメント - はじめに、チュートリアル、リファレンス。 | Microsoft Docs
ラインナップを見る限り、概念、開発手順、言語使用など網羅されてそうですね……っ!
勝手に自分なりのインデックスをつけながらリンクを張ってコメントをつけていきます。
対話型のチュートリアルなんかもありますが、こちらは初学者、文章を読んで覚えるのはちょっとつらい……、ちょっとしたことでも実践しながら学びたいという方向けかと思います。
私は文章で読んであーここはこっちの言語とはこう違うのねーとか考えながら進めたいタイプなのでチュートリアルはすべて飛ばします。

よくわかんなかったとこ、深堀しなかったこと、あえてリンクしなかったこと

この記事を作るにあたってリンクしていないページもほぼほぼ読んでいるのですが、ピンとこなかったトピックか今調べなくても大丈夫だろう……と判断したトピック。別途、調べておきたい。

  • ステートメント関連
    • yield?とか見おぼえないけどとりあえずいいかと流した。
  • ダイナミック型
    • 何に使うんだ?Objectじゃない理由は?
  • 匿名関数とラムダ式
    • 匿名メソッドまではぎりぎりわかる気がする
  • 部分メソッド
    • 何に使うの?
  • デリゲート
    • 雰囲気は分かった気がするけどもう少し知りたい
  • インデクサー
    • 何に使うの?
  • アンセーフコード
    • C#でもポインタが使えるらしい。ネイティブ関数を呼ぶときに使用とのこと。パフォーマンス向上する場合あり。危険なので基本的にはやめておくのが吉だと思う。
  • タプル
    • 長いので
  • イテレータ
    • なんかJavaと違うという印象を受けたので
  • LINQ
    • 奥深そうなのでこれだけでいろいろ掘り下げられそう。