1
resposta

[Dúvida] Qual o motivo das Strings serem nulas e o Int não?

Existe um motivo especifico para não colocar o Int da Duração como nula " public int ? Duracao" ? Eu sei que propriedades do tipo int geralmente não são nulas por ser tipo valor, mas o que mudaria nesse caso ai da Desserialização ?

1 resposta

Olá Marconi! Tudo certo?

Em C#, os tipos de dados são divididos em dois grandes grupos: tipos de valor e tipos de referência. Os tipos de valor, como int, double, e bool, armazenam os próprios dados. Já os tipos de referência, como string, object, e arrays, armazenam uma referência para os dados.

Por padrão, os tipos de valor não podem ser nulos porque eles sempre têm um valor padrão (por exemplo, 0 para int). No entanto, você pode tornar um tipo de valor anulável usando o operador ?, como em int?. Isso é útil quando você precisa representar a ausência de um valor numérico válido, como em casos onde a informação pode não estar disponível ou não aplicável.

No contexto da desserialização, se você espera que um campo possa não estar presente ou ser nulo no JSON, é uma boa prática usar tipos anuláveis. Por exemplo, se a propriedade Duracao pode estar ausente ou ser nula no JSON, declarar public int? Duracao { get; set; } permitirá que você capture essa ausência de valor sem causar uma exceção.

Por outro lado, string já é um tipo de referência e pode ser nulo por natureza, então não precisa do operador ? para indicar que pode ser nulo.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.