Czy mogę naprawdę i naprawdę zaufać .NET do inicjowania pól (takich jak int, structs i tym podobne)? A co jeśli nadal chcę zainicjować te pola - jakie mogą być reperkusje?Inicjowanie domyślnej wartości pola jest zbędne
13
A
Odpowiedz
18
W C# specification stany na p.305 (17.4.4)
Wartość początkowa polu, czy to statyczne pole lub pola instancja, to wartość domyślna (§12.2) z typ pola. Nie można zaobserwować wartości pola przed zaistnieniem tej domyślnej inicjalizacji, a zatem pole nie jest nigdy "niezainicjalizowane".
Pozdrawiam, tamberg
12
Tak, można naprawdę zaufać .NET, aby zainicjować pola do ich wartości domyślnych. Zasadniczo nie ma żadnych reperkusji, aby zrobić to wyraźnie. (Jedno małe zastrzeżenie: jeśli zainicjalizujesz pola statyczne jawnie, to każdy, kto uruchomi inicjalizator typu po raz drugi za pomocą odbicia, będzie musiał ponownie zainicjować te pola.) Jest to prawdziwa narożna sprawa!). większa czytelność w Twojej bazie kodu.
Powiązane problemy
- 1. Resetowanie pola MySQL do wartości domyślnej
- 2. Dodawanie wpisu do elementu task_struct i inicjowanie wartości domyślnej
- 3. Inicjowanie nieostatniego pola
- 4. Sposób ustawiania domyślnej wartości pola danych - EXTJS 4
- 5. Ustawianie domyślnej wartości funkcji?
- 6. python - zwracanie wartości domyślnej
- 7. Dodawanie wartości domyślnej SelectListItem
- 8. Płynna NHibernate - Zbędne zmiana
- 9. Migracja Railsy: czy można używać wartości "zero" jako wartości domyślnej dla pola logicznego?
- 10. sqlite3 zmiana domyślnej wartości kolumny
- 11. automatyczny nieruchomość o wartości domyślnej
- 12. Ruby on Rails jsonb wartości domyślnej kolumny
- 13. Używanie nazwy parametru w jego domyślnej wartości - czy jest legalne?
- 14. Dlaczego nie jest możliwe określenie domyślnej wartości parametru varaliS Scala?
- 15. Inicjowanie wartości klasy maszynopisu z konstruktora
- 16. Inicjowanie statyczna zmienna o wartości nonconstant
- 17. Inicjowanie wartości za pomocą zmiennej sesji
- 18. Inicjowanie Char * []
- 19. Przesłanianie równań(): czy zerowe porównanie jest zbędne przy wywołaniu base.Equals()?
- 20. Ustawienie wartości domyślnej C# opcjonalny parametr
- 21. Szablon z domyślnej wartości argumentu metody wskaźnika
- 22. Nie można zmienić domyślnej wartości RVM
- 23. ustawienie domyślnej wartości ciąg Pythona collections.defaultdict
- 24. Ustawianie domyślnej wartości bieżącego użytkownika w Oracle
- 25. Zmiana domyślnej wartości zwracanej defaultdict * po * inicjalizacji
- 26. szyny check_box_tag set sprawdzane wartości domyślnej
- 27. Porównaj Nullable zmienna DateTime dla wartości domyślnej
- 28. Dodawanie wartości domyślnej do wprowadzania tekstu w postaci prostej
- 29. DataGridView z wyboru z wartości domyślnej sprawdzone
- 30. Pole Laravel 5.4 nie ma wartości domyślnej
Dlaczego na ziemi jest to oznaczone 'resharper'? – developerbmw
@developerbmw - ten * został * oznaczony jako resharper, ponieważ ReSharper ostrzega o tym: [link] (https://confluence.jetbrains.com/display/ReSharper/Redundant+field+initializer) –
Dzięki @WaiHaLee – developerbmw