Оглавление
В C#, типы значений не могут быть null. По определению типы значений имеют значение, и даже неинициализированные переменные типов значений должны иметь значение. Это называется значением по умолчанию для этого типа. Это приводит к последующему, обычно неожиданному, результату проверки инициализации переменной:
Почему point1 не null? Ответ заключается в том что Point - это тип значения, и значение по умолчанию для него (0,0), а не null. Неправильное понимание этого это очень простая (и частая) ошибка, которая совершается в C#.
Многие (но не все) типы значений имеют свойство IsEmpty, которым вы можете проверить равенство текущего значения и значения по умолчанию:
Когда вы проверяете была ли переменная проинициализирована или нет, убедитесь что вы знаете какое значение для неинициализированной переменной этого типа будет по умолчанию, и не полагайтесь на то что это будет null.
Частая ошибка №3: Использование неподходящих или неопределенных методов сравнения строк
Оригинал
В C#, типы значений не могут быть null. По определению типы значений имеют значение, и даже неинициализированные переменные типов значений должны иметь значение. Это называется значением по умолчанию для этого типа. Это приводит к последующему, обычно неожиданному, результату проверки инициализации переменной:
Почему point1 не null? Ответ заключается в том что Point - это тип значения, и значение по умолчанию для него (0,0), а не null. Неправильное понимание этого это очень простая (и частая) ошибка, которая совершается в C#.
Многие (но не все) типы значений имеют свойство IsEmpty, которым вы можете проверить равенство текущего значения и значения по умолчанию:
Когда вы проверяете была ли переменная проинициализирована или нет, убедитесь что вы знаете какое значение для неинициализированной переменной этого типа будет по умолчанию, и не полагайтесь на то что это будет null.
Частая ошибка №3: Использование неподходящих или неопределенных методов сравнения строк
Оригинал
Комментариев нет:
Отправить комментарий