C# 4.0 ile birlikte, dynamic anahtar kelimesi tanıtılmıştı ve geliştiricilere tür belirtilmeyen değişkenler oluşturma imkanı veriyordu. dynamic, tür güvenliğini geçici olarak feda ederek daha esnek kod yazma olanağı sağlıyordu. Ancak C# 5.0'da, dynamic anahtar kelimesinin kullanımı sınırlandırıldı ve yerine daha fazla statik tür analizi yapılan await ve async anahtar kelimeleri getirildi.
C# 5.0'da önceki sürüme göre bazı özelliklerin değiştiği görüldü.
Caller Information özniteliği, C# 4.0'da bulunan ve bir metodu çağıran kodun satır numarası, dosya yolu ve metot adı gibi bilgileri elde etmeyi sağlayan bir özellikti. Ancak C# 5.0'da bu özellik değiştirilerek, daha farklı bir yapıya sahip hale geldi.
C# 4.0, COM nesnelerine erişimi kolaylaştırmak amacıyla COM karşılığı türlerle ilgili özellikler sunuyordu. Ancak C# 5.0'da, bu türlerin kullanımı kısıtlandı ve geliştiricilerin COM nesnelerine erişimi daha farklı yöntemlerle sağlanmaya başlandı.
Bazı özellikler C# 4.0'dan C# 5.0'a geçişte artık kullanılmamaya başlandı veya değiştirildi. dynamic anahtar kelimesi, Caller Information özniteliği ve COM karşılığı türler gibi özellikler, C# 5.0 sürümünde yerini yeni ve daha güçlü özelliklere bıraktı. Bu değişiklikler, dilin daha güvenli ve performanslı bir hale gelmesini sağlarken, geliştiricilerin kodlarını daha etkili ve verimli bir şekilde yazmalarına yardımcı oldu. C# 5.0 ile birlikte, dilin kullanımı daha da kolaylaşırken, eski özelliklere veda etmek de C# dilinin sürekli gelişen doğasını yansıttı.