Это относится не только к C#, но в C# это особенно актуально, по сути вы лишаетесь части преимуществ строгой проверки типов, предлагаемых компилятором C#.
Предупреждения генерируются по какой-то причине. В то время как ошибки компилятора указывают на дефект в вашем коде, многие предупреждения делают тоже самое. Разница между ними в том, что в случае предупреждения, компилятор не имеет проблем с инструкциями в вашем коде. Тем не менее, он находит ваш код подозрительным, и существует вероятность что ваш код не совсем точно отражает ваши намерения.