Nous avons ce code qui, une fois simplifié, ressemble à ceci:
public class Room
{
public Client Client { get; set; }
public long ClientId
{
get
{
return Client == null ? 0 : Client.Id;
}
}
}
public class Client
{
public long Id { get; set; }
}
Nous avons maintenant trois points de vue.
1) Il s'agit d'un bon code car la Client
propriété doit toujours être définie (c'est-à-dire non nulle), de sorte que la valeur Client == null
ne se produira jamais et que la valeur Id 0
indique un faux Id de toute façon (c'est l'opinion de l'auteur du code ;-))
2) Vous ne pouvez pas compter sur l'appelant pour savoir qu'il 0
s'agit d'une valeur fausse Id
et lorsque la Client
propriété doit toujours être définie, vous devez jeter un exception
dans la get
lorsque la Client
propriété se trouve être nulle.
3) Lorsque la Client
propriété doit toujours être définie, il vous suffit de revenir Client.Id
et de laisser le code lever une NullRef
exception lorsque la Client
propriété est nulle.
Laquelle de ces réponses est la plus correcte? Ou existe-t-il une quatrième possibilité?