мы идентифицируем клиентское программное обеспечение с использованием класса Version и широко используем эти значения, а также храним эти значения в базе данных. Как бы вы сохранили неизвестное значение версии? Мы можем получить неизвестное значение версии, если не смогли успешно запросить версию клиента.
Я спрашиваю, потому что мне нравится Шаблон нулевого объекта , мне не нравятся постоянные проверки на нулевое значение, и я хотел бы, чтобы тип Version был типом значения вместо ссылочного типа. Но Microsoft реализовала тип Version как ссылочный тип. В то же время в .NET v4 добавлен метод TryParse () , который в случае сбоя сохраняет результат в виде (0,0), но не ноль. Если вы вызываете конструктор по умолчанию без указания точного значения версии, вы получите значение (0,0), а внутренние поля будут инициализированы (0, 0, -1, -1). Возможно, Microsoft поняла, что Version должна быть value-type, кто знает:).
Но как лучше всего обращаться с неизвестными значениями версии? Всегда проверять на ноль или использовать конструктор по умолчанию?