Dictionary<string, int> に存在しないキーを、インデクサー dict["x"] で読み取ろうとするとどうなりますか?
Dictionary のインデクサーで存在しないキーを読み取ろうとすると、KeyNotFoundException がスローされます。null や 0 のような既定値は返されません。キーが存在するか不明な場合は、TryGetValue メソッドを使うのが一般的で、キーがあれば true を返して値を out 引数に格納し、なければ false を返します。ContainsKey で事前に確認する方法もありますが、TryGetValue のほうが検索が1回で済むため効率的です。