Czy konserwacja staje się koszmarem na kod, który dopuszcza typu wartości zerowej typu zerowego? Zdaję sobie sprawę, że int?
jest odpowiednikiem Nullable<int>
, ale moje pytanie jest bardziej ukierunkowane na użyteczność tego. Widzimy typy wartości i oczywiście pomijamy je jako nie pozwalające na null
. Ale wprowadzenie Nullable<T>
ze skrótem znaku zapytania, jest oczywiste, co robi, ale nie zawsze jest zauważalne.Zła praktyka używania Nullable <T> z typami wartości?
Jest to jedna z tych cech, które tylko dlatego, że może zrób to, nie oznacza, że powinny?
Jakie powinny być preferencje? Domyślna wartość typu wartości (tj. int SomeConfigOption = -1;
) lub wykorzystująca Nullable<T>
(tj. int? SomeConfigOption;
)?
'Nullable' jest * tylko * przeznaczone do stosowania z typami wartości. Wydaje się, że pytasz, czy 'Nullable ' powinno być generalnie uważane za szkodliwe. –
Cameron
@Cameron Myślę, że moje brzmienie było trochę niewyraźne. I niekoniecznie bezpośrednio szkodliwe, po prostu dodając złożoności. –
Cokolwiek robisz, nie pisz struktury, a następnie użyj 'Nullable' z nią. Wczoraj natknąłem się na to w kodzie produkcyjnym, uzupełniając go przez odniesienie (ponieważ było to zmienne). Po prostu zrób z tego klasę! –
TrueWill