2016-10-13 9 views
2

Почему ProtoBuff.Net не поддерживает null?ProtoBuff.Net не поддерживает нуль. Зачем?

Я проходил через ProtoBuf и задавался вопросом, почему значения null не поддерживаются. Когда мы пытаемся присвоить значение null, оно дает исключение. Даже ref вроде строки не поддерживают это.

pb::ThrowHelper.ThrowIfNull(value, "value"); 

Я знаю, что Протос хочет, чтобы держать вещи минимальным базовыми, так что он поддерживает большое количество языков (поэтому нет DateTime), но нуль не является концепцией по языкам?

Возможно, я что-то пропускаю.

+0

Неясно, говоришь ли вы о буферах протокола вообще или о конкретной реализации их для .NET (возможно, protobuf.net?) –

+0

да. ProtoBuf.Net будет конкретным. –

+0

Правильно - возможно, вы захотите изменить название вопроса и первую строчку вопроса ... –

ответ

3

Просто потому, что базовая спецификация протокола («protobuf») не имеет понятия null и не может ее выражать. Если я не могу выразить это в протоколе, лучшее, что может быть поддержано, - это какое-то неявное «отсутствие чего-то означает оставить его в покое, что означает, что он, вероятно, будет null».

+0

, но не 'null' - глобальная концепция парадигм программирования, таких как' int'? –

+0

@NikhilAgrawal Вы можете быть удивлены, узнав, что, например, JavaScript на самом деле не имеет целых чисел :) – jpa

+0

@NikhilAgrawal вы можете принять это с людьми, которые разработали протокол ... –

 Смежные вопросы

  • Нет связанных вопросов^_^