Я думаю, что самое чистое решение, как предлагали другие, - создать класс ClientId. Я не думаю, что это обязательно плохо, как этот пост объясняет довольно хорошо:
Многие классы имеют тенденцию потреблять или выставлять примитивные значения
как целые числа и строки. Хотя такие примитивные типы существуют на любом
платформы, они имеют тенденцию приводить к процессуальному коду Кроме того, они часто
нарушить инкапсуляцию, разрешив присваивать недопустимые значения.
Наличие отдельного класса дает вам различные возможности для проверки идентификатора, если это требуется. В конце концов, все дело в инкапсуляции.
Что-то вроде этого должно начать вас:
//auto-property for your class
public ClientId ClientID
{
get; set;
}
И класс ClientId:
public class ClientId
{
private int _id;
public ClientId(int id) { _id = id; }
public ClientId(string id) { //convert id to int, throw exception if invalid }
public int Value { return _id; }
}
Не забудьте также реализовать Equals и GetHashCode, что можно сделать тривиально для этого класса.