Я просматриваю код, по существу проходящий идентификатор, например:
GetPersonById(int personId)
Но вместо использования int он использовал объект PersonId.
GetPersonById(PersonId personId)
Объект PersonId - это просто int с некоторым кодовым кодом, чтобы сделать его нулевым. Так было ли это создано в старом .NET, когда nullable ints недоступны или есть более высокая цель для упаковки простых типов в классе?
public sealed class PersonId {
private PersonId() {
_isNull = true;
_value = 0;
}
private PersonId(int value) {
_isNull = false;
_value = value;
}
// and so on!
}