Generalnie ostrzeżenia kompilatora służą wskazaniu potencjalnie niebezpiecznych miejsc w naszym kodzie. Dość powszechny jest także pogląd (moim zdaniem - słuszny) nakazujący traktować ostrzeżenia na równi z błędami. Visual Studio umożliwa nam takie postępowanie poprzez opcję "Treat warnings as errors" (we właściwościach projektu, zakładka Build):
Jej domyślna wartość to None, zachęcam jednak do zmiany tego ustawienia.
Co natomiast w przypadku, gdy ostrzeżenie jest nam znane i z całą odpowiedzialnością je akceptujemy? Jak zmusić kompilator do jego ignorowania?
Oczywiście mamy taką możliwość. A nawet dwie...
Spójrzmy na kod:
1:
2: int unusedVariable;
3:
4:
5: protected int _nonCLSCompliant;
W komentarzach umieściłem treść ostrzeżeń z okienka "Errors". Numer ostrzeżenia można znaleźć w internecie, bądź klikając prawym przyciskiem myszy na danym ostrzeżeniu i wybraniu z menu kontekstowego opcji "Show Error Help".
Oto jak można pozbyć się upomnień kompilatora:
- w skali całego projektu
Bardzo proste, ponownie skorzystamy z zakładki Build w oknie właściwości projektu:
I mamy spokój.
- tylko w wyznaczonym fragmencie kodu
Czasami jednak takie generalizowanie nie jest najelpszym rozwiązaniem. Wówczas możemy uciec się do mniej chyba znanej funkcjonalności, a mianowicie dyrektywy preprocesora.
W praktyce wygląda to tak:
1: #pragma warning disable 0169, 3008
2:
3:
4: int unusedVariable;
5:
6:
7: protected int _nonCLSCompliant;
8:
9: #pragma warning restore 0169, 3008
Tym sposobem osiągamy ignorowanie tylko wyznaczonych ostrzeżeń - tylko w wyznaczonym obrębie kodu.
"Ignorance is bliss" :)