Dość często jestem o to pytany, więc zbiorę to co uważam za najważniejsze w tym temacie.
C# to język opracowany przez Microsoft i oficjalna, po prostu wspaniała dokumentacja jest dostępna na MSDN. Oczywiście jest w całości po angielsku. Osobom nie czytającym płynnie (bez tłumaczenia na polski) po angielsku radzę najpierw opanować angielski, a potem brać się za programowanie.
Tutoriale na temat kluczowych elementów języka:
http://msdn.microsoft.com/en-us/library/aa288436(v=vs.71).aspxPrzewodnik po języku (trochę jak wyżej, ale bardziej rozbudowane i opisowe):
http://msdn.microsoft.com/en-us/library/67ef8sbd.aspxTo co najważniejsze w praktyce, czyli czym jest klasa i co może zawierać:
http://msdn.microsoft.com/en-us/library/ms173109.aspxDo tego nieocenione w nauce jest czytanie gotowego kodu. Nie musimy mieć go w formie źródłowej, aplikacje .NET (o ile nie są celowo zabezpieczane) świetnie się dekompilują do w pełni czytelnego i funkcjonalnego C#. Jednym z najprostszych i darmowych narzędzi do tego jest
ILSpy (wystarczy go odpalić i przeciągnąć na niego wybrany plik .exe czy .dll - w przypadku gier na Unity interesuje nas Assembly-CSharp.dll).